From 876a05d05d7c8ca4f1baa0b63f11670af4038b37 Mon Sep 17 00:00:00 2001 From: miku-666 <74728189+NessieHax@users.noreply.github.com> Date: Sun, 16 Apr 2023 19:23:05 +0200 Subject: [PATCH] ImageExtensions.cs - Add size check when blending two images --- PCK-Studio/Classes/Extensions/ImageExtensions.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/PCK-Studio/Classes/Extensions/ImageExtensions.cs b/PCK-Studio/Classes/Extensions/ImageExtensions.cs index c34fb646..b2e5a5df 100644 --- a/PCK-Studio/Classes/Extensions/ImageExtensions.cs +++ b/PCK-Studio/Classes/Extensions/ImageExtensions.cs @@ -9,11 +9,11 @@ using System.Linq; namespace PckStudio.Extensions { - public enum ImageLayoutDirection - { - Horizontal, - Vertical - } + public enum ImageLayoutDirection + { + Horizontal, + Vertical + } internal static class ImageExtensions { @@ -151,7 +151,7 @@ namespace PckStudio.Extensions byte[] baseImageBuffer = new byte[baseImageData.Stride * baseImageData.Height]; Marshal.Copy(baseImageData.Scan0, baseImageBuffer, 0, baseImageBuffer.Length); - + float overlayR = foregroundColor.R / 255f; float overlayG = foregroundColor.G / 255f; float overlayB = foregroundColor.B / 255f; @@ -177,8 +177,10 @@ namespace PckStudio.Extensions public static Image Blend(this Image image, Image overlay, BlendMode mode) { - if (image is not Bitmap baseImage || overlay is not Bitmap overlayImage) + if (image is not Bitmap baseImage || overlay is not Bitmap overlayImage || + image.Width != overlay.Width || image.Height != overlay.Height) return image; + BitmapData baseImageData = baseImage.LockBits(new Rectangle(Point.Empty, baseImage.Size), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); byte[] baseImageBuffer = new byte[baseImageData.Stride * baseImageData.Height];