Skip to content

Commit a124109

Browse files
committed
DocNET: Replaced ImageSharp by SkiaSharp
1 parent a0b9304 commit a124109

4 files changed

Lines changed: 17 additions & 18 deletions

File tree

‎src/ImageWizard.DocNET/Filters/PageToImageFilter.cs‎

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@
88
using ImageWizard.Attributes;
99
using ImageWizard.DocNET.Filters.Base;
1010
using ImageWizard.Processing.Results;
11-
using SixLabors.ImageSharp;
12-
using SixLabors.ImageSharp.PixelFormats;
11+
using SkiaSharp;
1312

1413
namespace ImageWizard.DocNET.Filters;
1514

@@ -29,9 +28,19 @@ public void PageToImage(int pageIndex, int width, int height)
2928

3029
Stream mem = Context.ProcessingContext.StreamPool.GetStream();
3130

32-
Image<Bgra32> image = Image.LoadPixelData<Bgra32>(pageReader.GetImage(), pageReader.GetPageWidth(), pageReader.GetPageHeight());
31+
byte[] pixels = pageReader.GetImage();
3332

34-
image.SaveAsPng(mem);
33+
var info = new SKImageInfo(
34+
pageReader.GetPageWidth(),
35+
pageReader.GetPageHeight(),
36+
SKColorType.Bgra8888,
37+
SKAlphaType.Unpremul);
38+
39+
using var bitmap = new SKBitmap(info);
40+
pixels.AsSpan().CopyTo(bitmap.GetPixelSpan());
41+
42+
using var data = bitmap.Encode(SKEncodedImageFormat.Png, 100);
43+
data.SaveTo(mem);
3544

3645
mem.Seek(0, SeekOrigin.Begin);
3746

‎src/ImageWizard.DocNET/ImageWizard.DocNET.csproj‎

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,13 @@
44

55
<ItemGroup>
66
<PackageReference Include="Docnet.Core" Version="2.6.0" />
7+
<PackageReference Include="SkiaSharp" Version="4.153.1" />
78
</ItemGroup>
89

910
<ItemGroup>
1011
<ProjectReference Include="..\ImageWizard.Core\ImageWizard.Core.csproj" />
1112
</ItemGroup>
1213

13-
<ItemGroup>
14-
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.12" />
15-
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="2.1.7" />
16-
</ItemGroup>
17-
1814
<ItemGroup>
1915
<ProjectReference Include="..\ImageWizard.Generator\ImageWizard.Generator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
2016
</ItemGroup>

‎src/ImageWizard.SkiaSharp/ImageWizardBuilderExtensions.cs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public static IImageWizardBuilder AddSkiaSharp(this IImageWizardBuilder builder,
2424
pipelineBuilder.WithFilter<ImageFormatFilter>();
2525
pipelineBuilder.WithFilter<TextFilter>();
2626

27-
pipelineBuilder.WithMimeTypes(new[] { MimeTypes.WebP, MimeTypes.Jpeg, MimeTypes.Png, MimeTypes.Gif, MimeTypes.Bmp });
27+
pipelineBuilder.WithMimeTypes([MimeTypes.WebP, MimeTypes.Jpeg, MimeTypes.Png, MimeTypes.Gif, MimeTypes.Bmp]);
2828

2929
options?.Invoke(pipelineBuilder);
3030

‎src/ImageWizard.SkiaSharp/SkiaSharpOptions.cs‎

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,13 @@ namespace ImageWizard.SkiaSharp;
99
/// </summary>
1010
public class SkiaSharpOptions
1111
{
12-
public SkiaSharpOptions()
13-
{
14-
ImageMaxWidth = 4000;
15-
ImageMaxHeight = 4000;
16-
}
17-
1812
/// <summary>
1913
/// ImageMaxWidth
2014
/// </summary>
21-
public int? ImageMaxWidth { get; set; }
15+
public int? ImageMaxWidth { get; set; } = 4000;
2216

2317
/// <summary>
2418
/// ImageMaxHeight
2519
/// </summary>
26-
public int? ImageMaxHeight { get; set; }
20+
public int? ImageMaxHeight { get; set; } = 4000;
2721
}

0 commit comments

Comments
 (0)