diff --git a/Disco.Services/Expressions/Extensions/ImageResultImplementations/FileMontageImageExpressionResult.cs b/Disco.Services/Expressions/Extensions/ImageResultImplementations/FileMontageImageExpressionResult.cs index c47e53a0..f1725d23 100644 --- a/Disco.Services/Expressions/Extensions/ImageResultImplementations/FileMontageImageExpressionResult.cs +++ b/Disco.Services/Expressions/Extensions/ImageResultImplementations/FileMontageImageExpressionResult.cs @@ -91,8 +91,7 @@ namespace Disco.Services.Expressions.Extensions.ImageResultImplementations if (MontageHorizontalLayout) DoHorizontalLayout(images, montageGraphics); - else - if (MontageVerticalLayout) + else if (MontageVerticalLayout) DoVirticalLayout(images, montageGraphics); else DoTableLayout(images, montageGraphics); @@ -164,7 +163,7 @@ namespace Disco.Services.Expressions.Extensions.ImageResultImplementations { var image = Images[imageIndex]; var cellPoint = new PointF((cellSize.Width * columnIndex) + (Padding * columnIndex), (cellSize.Height * rowIndex) + (Padding * rowIndex)); - MontageGraphics.Clip = new Region(new RectangleF(cellPoint, cellSize)); + MontageGraphics.SetClip(new RectangleF(cellPoint, cellSize)); MontageGraphics.DrawImageResized(image); imageIndex++; } diff --git a/Disco.Services/Extensions/ImagingExtensions.cs b/Disco.Services/Extensions/ImagingExtensions.cs index ed3707ff..244400d5 100644 --- a/Disco.Services/Extensions/ImagingExtensions.cs +++ b/Disco.Services/Extensions/ImagingExtensions.cs @@ -108,7 +108,7 @@ namespace Disco.Services public static RectangleF CalculateResize(int SourceWidth, int SourceHeight, int TargetWidth, int TargetHeight, out float scaleRatio) { - scaleRatio = Math.Min((float)(TargetWidth) / SourceWidth, (float)(TargetHeight) / SourceHeight); + scaleRatio = Math.Min((float)TargetWidth / SourceWidth, (float)TargetHeight / SourceHeight); float width = SourceWidth * scaleRatio, height = SourceHeight * scaleRatio, @@ -126,9 +126,7 @@ namespace Disco.Services public static RectangleF CalculateResize(int SourceWidth, int SourceHeight, int TargetWidth, int TargetHeight) { - float scaleRatio; - - return CalculateResize(SourceWidth, SourceHeight, TargetHeight, TargetHeight, out scaleRatio); + return CalculateResize(SourceWidth, SourceHeight, TargetWidth, TargetHeight, out _); } public static RectangleF CalculateResize(this Image Source, int TargetWidth, int TargetHeight, out float scaleRatio) @@ -138,13 +136,14 @@ namespace Disco.Services public static RectangleF CalculateResize(this Image Source, int TargetWidth, int TargetHeight) { - return CalculateResize(Source.Width, Source.Height, TargetHeight, TargetHeight); + return CalculateResize(Source.Width, Source.Height, TargetWidth, TargetHeight); } public static void DrawImageResized(this Graphics graphics, Image SourceImage) { RectangleF clipBounds = graphics.VisibleClipBounds; var resizeBounds = SourceImage.CalculateResize((int)clipBounds.Width, (int)clipBounds.Height); + resizeBounds.Offset(clipBounds.Location); graphics.DrawImage(SourceImage, resizeBounds, new RectangleF(0, 0, SourceImage.Width, SourceImage.Height), GraphicsUnit.Pixel); }