From 2816693f0bc6ac8722b07e7d0dc0ecf6cb4dc61d Mon Sep 17 00:00:00 2001 From: dirk Date: Fri, 11 Nov 2016 20:43:11 +0100 Subject: [PATCH] Added optimized ImageFrame implementation. --- src/ImageSharp/Image.cs | 6 +++++ src/ImageSharp/ImageFrame.cs | 46 ++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 src/ImageSharp/ImageFrame.cs diff --git a/src/ImageSharp/Image.cs b/src/ImageSharp/Image.cs index 9014f8653..9dbfacbba 100644 --- a/src/ImageSharp/Image.cs +++ b/src/ImageSharp/Image.cs @@ -61,5 +61,11 @@ namespace ImageSharp { return new PixelAccessor(this); } + + /// + internal override ImageFrame ToFrame() + { + return new ImageFrame(this); + } } } diff --git a/src/ImageSharp/ImageFrame.cs b/src/ImageSharp/ImageFrame.cs new file mode 100644 index 000000000..80e255fe6 --- /dev/null +++ b/src/ImageSharp/ImageFrame.cs @@ -0,0 +1,46 @@ +// +// Copyright (c) James Jackson-South and contributors. +// Licensed under the Apache License, Version 2.0. +// + +namespace ImageSharp +{ + using System.Diagnostics; + + /// + /// An optimized frame for the class. + /// + [DebuggerDisplay("ImageFrame: {Width}x{Height}")] + public class ImageFrame : ImageFrame + { + /// + /// Initializes a new instance of the class. + /// + public ImageFrame() + { + } + + /// + /// Initializes a new instance of the class. + /// + /// + /// The image to create the frame from. + /// + public ImageFrame(ImageBase image) + : base(image) + { + } + + /// + public override PixelAccessor Lock() + { + return new PixelAccessor(this); + } + + /// + internal override ImageFrame ToFrame() + { + return new ImageFrame(this); + } + } +}