From 81686a9dde2e73e2afe262641bb0e6e925d0e81c Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 22 Sep 2025 10:33:12 +0800 Subject: [PATCH] Refactor image format handling in resizer --- .../Imaging/MagickImageResizerContributor.cs | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/framework/src/Volo.Abp.Imaging.MagickNet/Volo/Abp/Imaging/MagickImageResizerContributor.cs b/framework/src/Volo.Abp.Imaging.MagickNet/Volo/Abp/Imaging/MagickImageResizerContributor.cs index bc6eea49fd..faabf882b9 100644 --- a/framework/src/Volo.Abp.Imaging.MagickNet/Volo/Abp/Imaging/MagickImageResizerContributor.cs +++ b/framework/src/Volo.Abp.Imaging.MagickNet/Volo/Abp/Imaging/MagickImageResizerContributor.cs @@ -29,7 +29,7 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien { using var image = new MagickImage(memoryStream); - if (mimeType.IsNullOrWhiteSpace() && !CanResize(image.Format.ToString())) + if (mimeType.IsNullOrWhiteSpace() && !CanResize(image.Format)) { return new ImageResizeResult(stream, ImageProcessState.Unsupported); } @@ -63,7 +63,7 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien using var image = new MagickImage(bytes); - if (mimeType.IsNullOrWhiteSpace() && !CanResize(image.Format.ToString())) + if (mimeType.IsNullOrWhiteSpace() && !CanResize(image.Format)) { return Task.FromResult(new ImageResizeResult(bytes, ImageProcessState.Unsupported)); } @@ -75,10 +75,6 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien protected virtual bool CanResize(string mimeType) { - if (!mimeType.StartsWith("image/")) - { - mimeType = "image/" + mimeType; - } return mimeType.ToLowerInvariant() switch { MimeTypes.Image.Jpeg => true, MimeTypes.Image.Png => true, @@ -90,6 +86,19 @@ public class MagickImageResizerContributor : IImageResizerContributor, ITransien }; } + protected virtual bool CanResize(MagickFormat format) + { + return format switch { + MagickFormat.Jpeg => true, + MagickFormat.Png => true, + MagickFormat.Gif => true, + MagickFormat.Bmp => true, + MagickFormat.Tiff => true, + MagickFormat.WebP => true, + _ => false + }; + } + protected virtual void Resize(MagickImage image, ImageResizeArgs resizeArgs) { ApplyResizeMode(image, resizeArgs);