Browse Source

Merge pull request #18002 from abpframework/liangshiwei/imageSharp

Fix ImageSharp upgrade error
pull/18018/head
Engincan VESKE 3 years ago
committed by GitHub
parent
commit
2a93fa96d6
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj
  2. 2
      framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpCompressOptions.cs
  3. 6
      framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageCompressorContributor.cs
  4. 6
      framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageResizerContributor.cs
  5. 4
      modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/ImageFormatHelper.cs
  6. 13
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Security/Captcha/SimpleMathsCaptchaGenerator.cs

2
framework/src/Volo.Abp.Imaging.ImageSharp/Volo.Abp.Imaging.ImageSharp.csproj

@ -4,7 +4,7 @@
<Import Project="..\..\..\common.props" /> <Import Project="..\..\..\common.props" />
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>netstandard2.0;</TargetFrameworks> <TargetFramework>net7.0</TargetFramework>
<PackageId>Volo.Abp.Imaging.ImageSharp</PackageId> <PackageId>Volo.Abp.Imaging.ImageSharp</PackageId>
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback> <AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute> <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>

2
framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpCompressOptions.cs

@ -22,7 +22,7 @@ public class ImageSharpCompressOptions
PngEncoder = new PngEncoder { PngEncoder = new PngEncoder {
CompressionLevel = PngCompressionLevel.BestCompression, CompressionLevel = PngCompressionLevel.BestCompression,
IgnoreMetadata = true SkipMetadata = true
}; };
WebpEncoder = new WebpEncoder { WebpEncoder = new WebpEncoder {

6
framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageCompressorContributor.cs

@ -34,14 +34,14 @@ public class ImageSharpImageCompressorContributor : IImageCompressorContributor,
return new ImageCompressResult<Stream>(stream, ImageProcessState.Unsupported); return new ImageCompressResult<Stream>(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>(stream, ImageProcessState.Unsupported); return new ImageCompressResult<Stream>(stream, ImageProcessState.Unsupported);
} }
var memoryStream = await GetStreamFromImageAsync(image, format, cancellationToken); var memoryStream = await GetStreamFromImageAsync(image, image.Metadata.DecodedImageFormat, cancellationToken);
if (memoryStream.Length < stream.Length) if (memoryStream.Length < stream.Length)
{ {

6
framework/src/Volo.Abp.Imaging.ImageSharp/Volo/Abp/Imaging/ImageSharpImageResizerContributor.cs

@ -24,9 +24,9 @@ public class ImageSharpImageResizerContributor : IImageResizerContributor, ITran
return new ImageResizeResult<Stream>(stream, ImageProcessState.Unsupported); return new ImageResizeResult<Stream>(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>(stream, ImageProcessState.Unsupported); return new ImageResizeResult<Stream>(stream, ImageProcessState.Unsupported);
} }
@ -44,7 +44,7 @@ public class ImageSharpImageResizerContributor : IImageResizerContributor, ITran
try try
{ {
await image.SaveAsync(memoryStream, format, cancellationToken: cancellationToken); await image.SaveAsync(memoryStream, image.Metadata.DecodedImageFormat, cancellationToken: cancellationToken);
memoryStream.Position = 0; memoryStream.Position = 0;
return new ImageResizeResult<Stream>(memoryStream, ImageProcessState.Done); return new ImageResizeResult<Stream>(memoryStream, ImageProcessState.Done);
} }

4
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) 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;
} }
} }

13
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 random = new Random();
var startWith = (byte)random.Next(5, 10); var startWith = (byte)random.Next(5, 10);
image.Mutate(ctx => ctx.BackgroundColor(Color.Transparent)); 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); var font = SystemFonts.CreateFont(fontFamily, options.FontSize, options.FontStyle);
foreach (var character in stringText) foreach (var character in stringText)
@ -118,7 +118,10 @@ public class SimpleMathsCaptchaGenerator : ISingletonDependency
var color = options.TextColor[random.Next(0, options.TextColor.Length)]; var color = options.TextColor[random.Next(0, options.TextColor.Length)];
var location = new PointF(startWith + position, random.Next(6, 13)); var location = new PointF(startWith + position, random.Next(6, 13));
image.Mutate(ctx => ctx.DrawText(text, font, color, location)); 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 //add rotation
@ -126,7 +129,7 @@ public class SimpleMathsCaptchaGenerator : ISingletonDependency
image.Mutate(ctx => ctx.Transform(rotation)); image.Mutate(ctx => ctx.Transform(rotation));
// add the dynamic image to original image // 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<Rgba32>(size + 15, options.Height); var img = new Image<Rgba32>(size + 15, options.Height);
img.Mutate(ctx => ctx.BackgroundColor(Color.White)); img.Mutate(ctx => ctx.BackgroundColor(Color.White));
@ -139,7 +142,7 @@ public class SimpleMathsCaptchaGenerator : ISingletonDependency
var y1 = random.Next(0, img.Height); var y1 = random.Next(0, img.Height);
img.Mutate(ctx => 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), RandomTextGenerator.GenerateNextFloat(options.MinLineThickness, options.MaxLineThickness),
new PointF[] { new PointF(x0, y0), new PointF(x1, y1) }) 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); var y0 = random.Next(0, img.Height);
img.Mutate( img.Mutate(
ctx => ctx 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) }) RandomTextGenerator.GenerateNextFloat(0.5, 1.5), new PointF[] { new Vector2(x0, y0), new Vector2(x0, y0) })
); );
}); });

Loading…
Cancel
Save