From 24ed11ac11d578779be526e6ad26d4e44ac1e87f Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 27 Oct 2023 16:48:50 +0800 Subject: [PATCH 1/4] Upgrade SixLabors.ImageSharp the latest --- .../Volo.Abp.Imaging.ImageSharp.csproj | 2 +- .../Volo.Blogging.Admin.Application.csproj | 2 +- .../Volo.Blogging.Application.csproj | 2 +- .../src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj index d523a292ba..bdc66961d2 100644 --- a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj +++ b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj @@ -18,7 +18,7 @@ - + \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj index adc000a44b..cd75ef5233 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj +++ b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj @@ -11,7 +11,7 @@ - + diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj index 9f1b8a1a00..5871e982dd 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj +++ b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj @@ -11,7 +11,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj index 7aaa2eda5e..7fe7ffbdad 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj @@ -18,8 +18,8 @@ - - + + From 745fa41615941bc2c997ca630c94616f4e8c9e31 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 27 Oct 2023 18:18:50 +0800 Subject: [PATCH 2/4] Fix ImageSharp upgrade error --- .../Volo.Abp.Imaging.ImageSharp.csproj | 2 +- .../Volo/Abp/Imaging/ImageSharpCompressOptions.cs | 2 +- .../Imaging/ImageSharpImageCompressorContributor.cs | 6 +++--- .../Imaging/ImageSharpImageResizerContributor.cs | 6 +++--- .../Volo/Blogging/Files/ImageFormatHelper.cs | 4 ++-- .../Security/Captcha/SimpleMathsCaptchaGenerator.cs | 13 ++++++++----- 6 files changed, 18 insertions(+), 15 deletions(-) diff --git a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj index bdc66961d2..50ebe11d50 100644 --- a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj +++ b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj @@ -4,7 +4,7 @@ - netstandard2.0; + net7.0 Volo.Abp.Imaging.ImageSharp $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false diff --git a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpCompressOptions.cs b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpCompressOptions.cs index 3fc291da6f..b7c097324d 100644 --- a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpCompressOptions.cs +++ b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpCompressOptions.cs @@ -22,7 +22,7 @@ public class ImageSharpCompressOptions PngEncoder = new PngEncoder { CompressionLevel = PngCompressionLevel.BestCompression, - IgnoreMetadata = true + SkipMetadata = true }; WebpEncoder = new WebpEncoder { diff --git a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageCompressorContributor.cs b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageCompressorContributor.cs index a54d006b30..276b7aa6c0 100644 --- a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageCompressorContributor.cs +++ b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageCompressorContributor.cs @@ -34,14 +34,14 @@ public class ImageSharpImageCompressorContributor : IImageCompressorContributor, return new ImageCompressResult(stream, ImageProcessState.Unsupported); } - var (image, format) = await Image.LoadWithFormatAsync(stream, cancellationToken); + var image = await Image.LoadAsync(stream, cancellationToken); - if (!CanCompress(format.DefaultMimeType)) + if (!CanCompress(image.Metadata.DecodedImageFormat!.DefaultMimeType)) { return new ImageCompressResult(stream, ImageProcessState.Unsupported); } - var memoryStream = await GetStreamFromImageAsync(image, format, cancellationToken); + var memoryStream = await GetStreamFromImageAsync(image, image.Metadata.DecodedImageFormat, cancellationToken); if (memoryStream.Length < stream.Length) { diff --git a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageResizerContributor.cs b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageResizerContributor.cs index d2ac92eaf7..7710484449 100644 --- a/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageResizerContributor.cs +++ b/framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageResizerContributor.cs @@ -24,9 +24,9 @@ public class ImageSharpImageResizerContributor : IImageResizerContributor, ITran return new ImageResizeResult(stream, ImageProcessState.Unsupported); } - var (image, format) = await Image.LoadWithFormatAsync(stream, cancellationToken); + var image = await Image.LoadAsync(stream, cancellationToken); - if (!CanResize(format.DefaultMimeType)) + if (!CanResize(image.Metadata.DecodedImageFormat!.DefaultMimeType)) { return new ImageResizeResult(stream, ImageProcessState.Unsupported); } @@ -44,7 +44,7 @@ public class ImageSharpImageResizerContributor : IImageResizerContributor, ITran try { - await image.SaveAsync(memoryStream, format, cancellationToken: cancellationToken); + await image.SaveAsync(memoryStream, image.Metadata.DecodedImageFormat, cancellationToken: cancellationToken); memoryStream.Position = 0; return new ImageResizeResult(memoryStream, ImageProcessState.Done); } diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/ImageFormatHelper.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/ImageFormatHelper.cs index 9fccb1e03a..32060bf501 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/ImageFormatHelper.cs +++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/ImageFormatHelper.cs @@ -10,9 +10,9 @@ namespace Volo.Blogging.Areas.Blog.Helpers { public static IImageFormat GetImageRawFormat(Stream stream) { - using (var image = Image.Load(stream, out var imageFormat)) + using (var image = Image.Load(stream)) { - return imageFormat; + return image.Metadata.DecodedImageFormat; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs index 220e24f892..7255b6b195 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs @@ -109,7 +109,7 @@ public class SimpleMathsCaptchaGenerator : ISingletonDependency var random = new Random(); var startWith = (byte)random.Next(5, 10); image.Mutate(ctx => ctx.BackgroundColor(Color.Transparent)); - var fontFamily = SystemFonts.Families.FirstOrDefault(x => x.IsStyleAvailable(options.FontStyle))?.Name ?? SystemFonts.Families.First().Name; + var fontFamily = SystemFonts.Families.FirstOrDefault(x => x.GetAvailableStyles().Contains(options.FontStyle)).Name ?? SystemFonts.Families.First().Name; var font = SystemFonts.CreateFont(fontFamily, options.FontSize, options.FontStyle); foreach (var character in stringText) @@ -118,7 +118,10 @@ public class SimpleMathsCaptchaGenerator : ISingletonDependency var color = options.TextColor[random.Next(0, options.TextColor.Length)]; var location = new PointF(startWith + position, random.Next(6, 13)); image.Mutate(ctx => ctx.DrawText(text, font, color, location)); - position += TextMeasurer.Measure(character.ToString(), new RendererOptions(font, location)).Width; + position += TextMeasurer.MeasureSize(character.ToString(), new TextOptions (font) + { + Origin = location + }).Width; } //add rotation @@ -126,7 +129,7 @@ public class SimpleMathsCaptchaGenerator : ISingletonDependency image.Mutate(ctx => ctx.Transform(rotation)); // add the dynamic image to original image - var size = (ushort)TextMeasurer.Measure(stringText, new RendererOptions(font)).Width; + var size = (ushort)TextMeasurer.MeasureSize(stringText, new TextOptions(font)).Width; var img = new Image(size + 15, options.Height); img.Mutate(ctx => ctx.BackgroundColor(Color.White)); @@ -139,7 +142,7 @@ public class SimpleMathsCaptchaGenerator : ISingletonDependency var y1 = random.Next(0, img.Height); img.Mutate(ctx => - ctx.DrawLines(options.TextColor[random.Next(0, options.TextColor.Length)], + ctx.DrawLine(options.TextColor[random.Next(0, options.TextColor.Length)], RandomTextGenerator.GenerateNextFloat(options.MinLineThickness, options.MaxLineThickness), new PointF[] { new PointF(x0, y0), new PointF(x1, y1) }) ); @@ -153,7 +156,7 @@ public class SimpleMathsCaptchaGenerator : ISingletonDependency var y0 = random.Next(0, img.Height); img.Mutate( ctx => ctx - .DrawLines(options.NoiseRateColor[random.Next(0, options.NoiseRateColor.Length)], + .DrawLine(options.NoiseRateColor[random.Next(0, options.NoiseRateColor.Length)], RandomTextGenerator.GenerateNextFloat(0.5, 1.5), new PointF[] { new Vector2(x0, y0), new Vector2(x0, y0) }) ); }); From ce71f5c9de157167bf76b6971ad2dd178b72a2d6 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 30 Oct 2023 14:46:07 +0800 Subject: [PATCH 3/4] Update Abp-8_0.md --- Directory.Packages.props | 4 ++-- docs/en/Migration-Guides/Abp-8_0.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 91574ec319..67c100c20b 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -138,8 +138,8 @@ - - + + diff --git a/docs/en/Migration-Guides/Abp-8_0.md b/docs/en/Migration-Guides/Abp-8_0.md index e90d9f04f0..108de6ba98 100644 --- a/docs/en/Migration-Guides/Abp-8_0.md +++ b/docs/en/Migration-Guides/Abp-8_0.md @@ -66,7 +66,7 @@ The following NuGet libraries have been upgraded: | Serilog.Sinks.Async | 1.4.0 | 1.5.0 | | SharpZipLib | 1.3.3 | 1.4.2 | | Shouldly | 4.1.0 | 4.2.1 | -| SixLabors.ImageSharp | 1.0.4 | 2.1.6 | +| SixLabors.ImageSharp | 1.0.4 | 3.0.2 | | Slugify.Core | 3.0.0 | 4.0.1 | | Spectre.Console | 0.46.1-preview.0.7 | 0.47.0 | | Swashbuckle.AspNetCore | 6.2.1 | 6.5.0 | From 0a5d116f719893dd0632c50a45872bbb99f543bf Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 30 Oct 2023 15:42:01 +0800 Subject: [PATCH 4/4] Update SimpleMathsCaptchaGenerator.cs --- .../Security/Captcha/SimpleMathsCaptchaGenerator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs index e4e16f52ae..f4f8ee85ed 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs @@ -128,7 +128,7 @@ public class SimpleMathsCaptchaGenerator : ITransientDependency var text = character.ToString(); var color = options.TextColor[random.Next(0, options.TextColor.Length)]; var location = new PointF(startWith + position, random.Next(6, 13)); - image.Mutate(ctx => ctx.DrawText(text, font, color, location));D + image.Mutate(ctx => ctx.DrawText(text, font, color, location)); position += TextMeasurer.MeasureSize(character.ToString(), new TextOptions (font) { Origin = location