diff --git a/PCK-Studio/Classes/Extensions/GraphicsExtensions.cs b/PCK-Studio/Classes/Extensions/GraphicsExtensions.cs new file mode 100644 index 00000000..b29842da --- /dev/null +++ b/PCK-Studio/Classes/Extensions/GraphicsExtensions.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Text; + +namespace PckStudio.Extensions +{ + public struct GraphicsConfig + { + public GraphicsConfig() + { + CompositingQuality = CompositingQuality.Default; + InterpolationMode = InterpolationMode.Default; + SmoothingMode = SmoothingMode.Default; + PixelOffsetMode = PixelOffsetMode.Default; + } + + public CompositingMode CompositingMode { get; set; } + public CompositingQuality CompositingQuality { get; set; } + public InterpolationMode InterpolationMode { get; set; } + public SmoothingMode SmoothingMode { get; set; } + public PixelOffsetMode PixelOffsetMode { get; set; } + } + + internal static class GraphicsExtensions + { + public static void ApplyConfig(this Graphics graphics, GraphicsConfig config) + { + graphics.CompositingMode = config.CompositingMode; + graphics.CompositingQuality = config.CompositingQuality; + graphics.InterpolationMode = config.InterpolationMode; + graphics.SmoothingMode = config.SmoothingMode; + graphics.PixelOffsetMode = config.PixelOffsetMode; + } + } +} diff --git a/PCK-Studio/Classes/Extensions/ImageExtensions.cs b/PCK-Studio/Classes/Extensions/ImageExtensions.cs index 6313801d..180ff5dc 100644 --- a/PCK-Studio/Classes/Extensions/ImageExtensions.cs +++ b/PCK-Studio/Classes/Extensions/ImageExtensions.cs @@ -1,12 +1,10 @@ -using System.Collections.Generic; -using System.Drawing.Drawing2D; +using System; using System.Drawing; using System.Diagnostics; -using System; using System.Drawing.Imaging; +using System.Drawing.Drawing2D; +using System.Collections.Generic; using System.Runtime.InteropServices; -using System.Windows.Media.Media3D; -using System.Web; namespace PckStudio.Extensions { @@ -110,25 +108,6 @@ namespace PckStudio.Extensions return new Size(width, heigh); } - public struct GraphicsConfig - { - public CompositingMode CompositingMode { get; set; } - public CompositingQuality CompositingQuality { get; set; } - public InterpolationMode InterpolationMode { get; set; } - public SmoothingMode SmoothingMode { get; set; } - public PixelOffsetMode PixelOffsetMode { get; set; } - - public void Apply(Graphics graphics) - { - graphics.CompositingMode = CompositingMode; - graphics.CompositingQuality = CompositingQuality; - graphics.InterpolationMode = InterpolationMode; - graphics.SmoothingMode = SmoothingMode; - graphics.PixelOffsetMode = PixelOffsetMode; - } - - } - public static Image ResizeImage(this Image image, int width, int height, GraphicsConfig graphicsConfig) { var destRect = new Rectangle(0, 0, width, height); @@ -138,7 +117,7 @@ namespace PckStudio.Extensions using (var graphics = Graphics.FromImage(destImage)) { - graphicsConfig.Apply(graphics); + graphics.ApplyConfig(graphicsConfig); using (var wrapMode = new ImageAttributes()) { wrapMode.SetWrapMode(WrapMode.TileFlipXY); @@ -169,7 +148,6 @@ namespace PckStudio.Extensions public static Image Blend(this Image image, Image overlay, BlendMode mode) { - Stopwatch stopwatch = Stopwatch.StartNew(); if (image is not Bitmap baseImage || overlay is not Bitmap overlayImage) return image; BitmapData baseImageData = baseImage.LockBits(new Rectangle(Point.Empty, baseImage.Size), @@ -200,8 +178,6 @@ namespace PckStudio.Extensions bitmapResult.UnlockBits(resultImageData); baseImage.UnlockBits(baseImageData); overlayImage.UnlockBits(overlayImageData); - stopwatch.Stop(); - Debug.WriteLine($"{nameof(ImageExtensions.Blend)} took {stopwatch.ElapsedMilliseconds}ms"); return bitmapResult; } diff --git a/PCK-Studio/Forms/Utilities/pckCenterOpen.cs b/PCK-Studio/Forms/Utilities/pckCenterOpen.cs index b1ba4635..7a978f68 100644 --- a/PCK-Studio/Forms/Utilities/pckCenterOpen.cs +++ b/PCK-Studio/Forms/Utilities/pckCenterOpen.cs @@ -1027,7 +1027,7 @@ namespace PckStudio.Forms { var ms = new MemoryStream(skinTexture.Data); Bitmap saveSkin = new Bitmap(Image.FromStream(ms)); - var config = new ImageExtensions.GraphicsConfig() + var config = new GraphicsConfig() { CompositingMode = CompositingMode.SourceCopy, CompositingQuality = CompositingQuality.HighQuality, diff --git a/PCK-Studio/PckStudio.csproj b/PCK-Studio/PckStudio.csproj index 96fbce83..ae28ad89 100644 --- a/PCK-Studio/PckStudio.csproj +++ b/PCK-Studio/PckStudio.csproj @@ -172,6 +172,7 @@ +