diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 20957c81..0e26d618 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -123,15 +123,18 @@ jobs: src/PDFtoImage/bin/${{ github.event_name != 'workflow_dispatch' && 'Debug' || inputs.build_configuration }}/*.nupkg src/PDFtoImage/bin/${{ github.event_name != 'workflow_dispatch' && 'Debug' || inputs.build_configuration }}/*.snupkg if-no-files-found: error + - name: Compress tests + shell: pwsh + run: Compress-Archive -Path src/Tests/bin/${{ github.event_name != 'workflow_dispatch' && 'Debug' || inputs.build_configuration }}/* -DestinationPath TestAssemblies.zip -CompressionLevel "Fastest" - name: Publish tests - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: success() && (github.event_name != 'workflow_dispatch' && true || inputs.run_tests) == true with: name: Test assemblies - path: src/Tests/bin/${{ github.event_name != 'workflow_dispatch' && 'Debug' || inputs.build_configuration }} + path: TestAssemblies.zip if-no-files-found: error retention-days: 1 - #compression-level: 0 + compression-level: 0 - name: Publish test project MonoConsole uses: actions/upload-artifact@v4 if: success() && (github.event_name != 'workflow_dispatch' && true || inputs.run_tests) == true @@ -181,9 +184,13 @@ jobs: run: mono MonoConsole/net481/PDFtoImage.FrameworkTests.MonoConsole.exe - name: Download test assemblies if: success() || failure() - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: Test assemblies + - name: Expand tests + if: success() || failure() + shell: pwsh + run: Expand-Archive -Path TestAssemblies.zip -DestinationPath . - name: .NET Framework 4.6.2 if: runner.os == 'Windows' && (success() || failure()) run: dotnet test net462/*.Tests.dll --logger trx --verbosity detailed --results-directory "${{ matrix.os }}/TestResults" ${{ (github.event_name == 'workflow_dispatch' && inputs.generate_assets) == true && '--settings net462/SaveOutputInGeneratedFolder.runsettings' || '' }} diff --git a/README.md b/README.md index 015ebf04..94f9c380 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,23 @@ Call a static method from `PDFtoImage.Conversion`: https://github.com/sungaila/PDFtoImage.git?path=etc/UnityPackage ``` +## Breaking changes in v4.0.0 +Starting with v4.0.0 the struct `RenderOptions` is used for most methods. This is a breaking change when updating from v3.1.0 and older. +### Option 1: Migrate to new API +```csharp +// this will not compile anymore +PDFtoImage.Conversion.SaveJpeg("image.jpg", pdfStream, dpi: 300, rotation: PdfRotation.Rotate90); + +// use this instead +PDFtoImage.Conversion.SaveJpeg("image.jpg", pdfStream, options: new(Dpi: 300, Rotation: PdfRotation.Rotate90)); +``` +### Option 2: Change namespace +Note: This namespace is used for backward compatibility and will be removed in a future version. +```csharp +using PDFtoImage; +using Conversion = PDFtoImage.Compatibility.Conversion; +``` + ## Supported runtimes * [.NET (Core)](https://learn.microsoft.com/en-us/dotnet/core/introduction) * [.NET Framework](https://learn.microsoft.com/en-us/dotnet/framework/get-started/overview) diff --git a/src/Console/Console.csproj b/src/Console/Console.csproj index 9d1ec668..fcdaa2c9 100644 --- a/src/Console/Console.csproj +++ b/src/Console/Console.csproj @@ -7,7 +7,7 @@ PDFtoImage.Console PDFtoImage.Console PDFtoImage.Console.Program - 3.1.0 + 4.0.0 Debug;Release;ReleaseSigned diff --git a/src/Console/Program.cs b/src/Console/Program.cs index d6c816ef..5256a8a8 100644 --- a/src/Console/Program.cs +++ b/src/Console/Program.cs @@ -35,14 +35,14 @@ public static int Main(string[] args) switch (Path.GetExtension(outputPath).ToLower()) { case ".png": - Conversion.SavePng(outputPath, inputStream, page: page - 1, dpi: dpi, withAnnotations: withAnnotations, withFormFill: withFormFill); + Conversion.SavePng(outputPath, inputStream, page: page - 1, options: new(Dpi: dpi, WithAnnotations: withAnnotations, WithFormFill: withFormFill)); break; case ".jpg": case ".jpeg": - Conversion.SaveJpeg(outputPath, inputStream, page: page - 1, dpi: dpi, withAnnotations: withAnnotations, withFormFill: withFormFill); + Conversion.SaveJpeg(outputPath, inputStream, page: page - 1, options: new(Dpi: dpi, WithAnnotations: withAnnotations, WithFormFill: withFormFill)); break; case ".webp": - Conversion.SaveWebp(outputPath, inputStream, page: page - 1, dpi: dpi, withAnnotations: withAnnotations, withFormFill: withFormFill); + Conversion.SaveWebp(outputPath, inputStream, page: page - 1, options: new(Dpi: dpi, WithAnnotations: withAnnotations, WithFormFill: withFormFill)); break; default: throw new InvalidOperationException("Only the following file extensions are supported: png, jpg/jpeg and webp."); diff --git a/src/FrameworkTests/AotConsole/Program.cs b/src/FrameworkTests/AotConsole/Program.cs index 43ef85a7..de88d6ad 100644 --- a/src/FrameworkTests/AotConsole/Program.cs +++ b/src/FrameworkTests/AotConsole/Program.cs @@ -3,7 +3,7 @@ public class Program { private const int ExpectedWidth = 5333; - private const int ExpectedHeight = 2666; + private const int ExpectedHeight = 2667; public static void Main() { diff --git a/src/FrameworkTests/MonoAndroid/MonoAndroid.csproj b/src/FrameworkTests/MonoAndroid/MonoAndroid.csproj index 9d4b66f6..d8e804ba 100644 --- a/src/FrameworkTests/MonoAndroid/MonoAndroid.csproj +++ b/src/FrameworkTests/MonoAndroid/MonoAndroid.csproj @@ -112,8 +112,8 @@ - - + + diff --git a/src/FrameworkTests/MonoConsole/Program.cs b/src/FrameworkTests/MonoConsole/Program.cs index f466f09f..07b1b208 100644 --- a/src/FrameworkTests/MonoConsole/Program.cs +++ b/src/FrameworkTests/MonoConsole/Program.cs @@ -6,7 +6,7 @@ namespace PDFtoImage.FrameworkTests.MonoConsole public class Program { private const int ExpectedWidth = 5333; - private const int ExpectedHeight = 2666; + private const int ExpectedHeight = 2667; public static void Main() { diff --git a/src/PDFtoImage/Compatibility/Conversion.cs b/src/PDFtoImage/Compatibility/Conversion.cs new file mode 100644 index 00000000..daf66ff8 --- /dev/null +++ b/src/PDFtoImage/Compatibility/Conversion.cs @@ -0,0 +1,841 @@ +using SkiaSharp; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.IO; +using System.Runtime.CompilerServices; +using System.Runtime.Versioning; +using System.Threading; + +namespace PDFtoImage.Compatibility +{ + /// + /// Provides methods to render PDFs into images. Used for backward compatibility. + /// +#if NET6_0_OR_GREATER + [SupportedOSPlatform("Windows")] + [SupportedOSPlatform("Linux")] + [SupportedOSPlatform("macOS")] + [SupportedOSPlatform("Android31.0")] +#endif + [Obsolete("This class is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static class Conversion + { + /// + /// Renders a single page of a given PDF and saves it as a JPEG. + /// + /// The output image file path. + /// The PDF encoded as Base64. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveJpeg( + string imageFilename, + string pdfAsBase64String, + string? password = null, + int page = 0, + int dpi = 300, + int? width = null, + int? height = null, + bool withAnnotations = false, + bool withFormFill = false, + bool withAspectRatio = false, + PdfRotation rotation = PdfRotation.Rotate0, + PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, + SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageFilename, SKEncodedImageFormat.Jpeg, pdfAsBase64String, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a JPEG. + /// + /// The output image stream. + /// The PDF encoded as Base64. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveJpeg( + Stream imageStream, + string pdfAsBase64String, + string? password = null, + int page = 0, + int dpi = 300, + int? width = null, + int? height = null, + bool withAnnotations = false, + bool withFormFill = false, + bool withAspectRatio = false, + PdfRotation rotation = PdfRotation.Rotate0, + PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, + SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageStream, SKEncodedImageFormat.Jpeg, pdfAsBase64String, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a JPEG. + /// + /// The output image file path. + /// The PDF as a byte array. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveJpeg( + string imageFilename, + byte[] pdfAsByteArray, + string? password = null, + int page = 0, + int dpi = 300, + int? width = null, + int? height = null, + bool withAnnotations = false, + bool withFormFill = false, + bool withAspectRatio = false, + PdfRotation rotation = PdfRotation.Rotate0, + PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, + SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageFilename, SKEncodedImageFormat.Jpeg, pdfAsByteArray, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a JPEG. + /// + /// The output image stream. + /// The PDF as a byte array. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveJpeg( + Stream imageStream, + byte[] pdfAsByteArray, + string? password = null, + int page = 0, + int dpi = 300, + int? width = null, + int? height = null, + bool withAnnotations = false, + bool withFormFill = false, + bool withAspectRatio = false, + PdfRotation rotation = PdfRotation.Rotate0, + PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, + SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageStream, SKEncodedImageFormat.Jpeg, pdfAsByteArray, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a JPEG. + /// + /// The output image file path. + /// The PDF as a stream. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveJpeg( + string imageFilename, + Stream pdfStream, + string? password = null, + int page = 0, + int dpi = 300, + int? width = null, + int? height = null, + bool withAnnotations = false, + bool withFormFill = false, + bool withAspectRatio = false, + PdfRotation rotation = PdfRotation.Rotate0, + PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, + SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageFilename, SKEncodedImageFormat.Jpeg, pdfStream, false, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a JPEG. + /// + /// The output image stream. + /// The PDF as a stream. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveJpeg( + Stream imageStream, + Stream pdfStream, + string? password = null, + int page = 0, + int dpi = 300, + int? width = null, + int? height = null, + bool withAnnotations = false, + bool withFormFill = false, + bool withAspectRatio = false, + PdfRotation rotation = PdfRotation.Rotate0, + PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, + SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageStream, SKEncodedImageFormat.Jpeg, pdfStream, false, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a PNG. + /// + /// The output image file path. + /// The PDF encoded as Base64. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SavePng(string imageFilename, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageFilename, SKEncodedImageFormat.Png, pdfAsBase64String, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a PNG. + /// + /// The output image stream. + /// The PDF encoded as Base64. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SavePng(Stream imageStream, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageStream, SKEncodedImageFormat.Png, pdfAsBase64String, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a PNG. + /// + /// The output image file path. + /// The PDF as a byte array. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SavePng(string imageFilename, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageFilename, SKEncodedImageFormat.Png, pdfAsByteArray, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a PNG. + /// + /// The output image stream. + /// The PDF as a byte array. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SavePng(Stream imageStream, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageStream, SKEncodedImageFormat.Png, pdfAsByteArray, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a PNG. + /// + /// The output image file path. + /// The PDF as a stream. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SavePng(string imageFilename, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageFilename, SKEncodedImageFormat.Png, pdfStream, false, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a PNG. + /// + /// The output image stream. + /// The PDF as a stream. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SavePng(Stream imageStream, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageStream, SKEncodedImageFormat.Png, pdfStream, false, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a bitmap. + /// + /// The output image file path. + /// The PDF encoded as Base64. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveWebp(string imageFilename, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageFilename, SKEncodedImageFormat.Webp, pdfAsBase64String, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a bitmap. + /// + /// The output image stream. + /// The PDF encoded as Base64. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveWebp(Stream imageStream, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageStream, SKEncodedImageFormat.Webp, pdfAsBase64String, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a bitmap. + /// + /// The output image file path. + /// The PDF as a byte array. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveWebp(string imageFilename, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageFilename, SKEncodedImageFormat.Webp, pdfAsByteArray, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a bitmap. + /// + /// The output image stream. + /// The PDF as a byte array. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveWebp(Stream imageStream, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageStream, SKEncodedImageFormat.Webp, pdfAsByteArray, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a bitmap. + /// + /// The output image file path. + /// The PDF as a stream. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveWebp(string imageFilename, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageFilename, SKEncodedImageFormat.Webp, pdfStream, false, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF and saves it as a bitmap. + /// + /// The output image stream. + /// The PDF as a stream. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static void SaveWebp(Stream imageStream, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + PDFtoImage.Conversion.SaveImpl(imageStream, SKEncodedImageFormat.Webp, pdfStream, false, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF into an image. + /// + /// The PDF encoded as Base64. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The converted PDF page as an image. + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static SKBitmap ToImage(string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + return PDFtoImage.Conversion.ToImage(pdfAsBase64String, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF into an image. + /// + /// The PDF as a byte array. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The converted PDF page as an image. + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static SKBitmap ToImage(byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + return PDFtoImage.Conversion.ToImage(pdfAsByteArray, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF into an image. + /// + /// The PDF as a stream. + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The rendered PDF page as an image. + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static SKBitmap ToImage(Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + return PDFtoImage.Conversion.ToImage(pdfStream, false, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders a single page of a given PDF into an image. + /// + /// The PDF as a stream. + /// to leave the open after the PDF document is loaded; otherwise, . + /// The password for opening the PDF. Use if no password is needed. + /// The specific page to be converted. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired . Use if the original width should be used. + /// The height of the desired . Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The rendered PDF page as an image. + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static SKBitmap ToImage(Stream pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + return PDFtoImage.Conversion.ToImage(pdfStream, leaveOpen, password, page, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders all pages of a given PDF into images. + /// + /// The PDF encoded as Base64. + /// The password for opening the PDF. Use if no password is needed. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the all pages. Use if the original width (per page) should be used. + /// The height of all pages. Use if the original height (per page) should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The rendered PDF pages as images. + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static IEnumerable ToImages(string pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + return PDFtoImage.Conversion.ToImages(pdfAsBase64String, password, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders all pages of a given PDF into images. + /// + /// The PDF as a byte array. + /// The password for opening the PDF. Use if no password is needed. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the all pages. Use if the original width (per page) should be used. + /// The height of all pages. Use if the original height (per page) should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The rendered PDF pages as images. + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static IEnumerable ToImages(byte[] pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + return PDFtoImage.Conversion.ToImages(pdfAsByteArray, password, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders all pages of a given PDF into images. + /// + /// The PDF as a stream. + /// The password for opening the PDF. Use if no password is needed. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the all pages. Use if the original width (per page) should be used. + /// The height of all pages. Use if the original height (per page) should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The rendered PDF pages as images. + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static IEnumerable ToImages(Stream pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + return PDFtoImage.Conversion.ToImages(pdfStream, false, password, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + + /// + /// Renders all pages of a given PDF into images. + /// + /// The PDF as a stream. + /// to leave the open after the PDF document is loaded; otherwise, . + /// The password for opening the PDF. Use if no password is needed. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the all pages. Use if the original width (per page) should be used. + /// The height of all pages. Use if the original height (per page) should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The rendered PDF pages as images. + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static IEnumerable ToImages(Stream pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + { + return PDFtoImage.Conversion.ToImages(pdfStream, leaveOpen, password, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)); + } + +#if NET6_0_OR_GREATER + /// + /// Renders all pages of a given PDF into images. + /// + /// The PDF encoded as Base64. + /// The cancellation token to cancel the conversion. Please note that an ongoing rendering cannot be cancelled (the next page will not be rendered though). + /// The password for opening the PDF. Use if no password is needed. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the all pages. Use if the original width (per page) should be used. + /// The height of all pages. Use if the original height (per page) should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The rendered PDF pages as images. + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static async IAsyncEnumerable ToImagesAsync(string pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) + { + await foreach (var image in PDFtoImage.Conversion.ToImagesAsync(pdfAsBase64String, password, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor), cancellationToken)) + { + yield return image; + } + } + + /// + /// Renders all pages of a given PDF into images. + /// + /// The PDF as a byte array. + /// The cancellation token to cancel the conversion. Please note that an ongoing rendering cannot be cancelled (the next page will not be rendered though). + /// The password for opening the PDF. Use if no password is needed. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the all pages. Use if the original width (per page) should be used. + /// The height of all pages. Use if the original height (per page) should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The rendered PDF pages as images. +#if NET6_0_OR_GREATER + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] +#endif + public static async IAsyncEnumerable ToImagesAsync(byte[] pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) + { + await foreach (var image in PDFtoImage.Conversion.ToImagesAsync(pdfAsByteArray, password, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor), cancellationToken)) + { + yield return image; + } + } + + /// + /// Renders all pages of a given PDF into images. + /// + /// The PDF as a stream. + /// The cancellation token to cancel the conversion. Please note that an ongoing rendering cannot be cancelled (the next page will not be rendered though). + /// The password for opening the PDF. Use if no password is needed. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the all pages. Use if the original width (per page) should be used. + /// The height of all pages. Use if the original height (per page) should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The rendered PDF pages as images. +#if NET6_0_OR_GREATER + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] +#endif + public static async IAsyncEnumerable ToImagesAsync(Stream pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) + { + await foreach (var image in PDFtoImage.Conversion.ToImagesAsync(pdfStream, false, password, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor), cancellationToken)) + { + yield return image; + } + } + + /// + /// Renders all pages of a given PDF into images. + /// + /// The PDF as a stream. + /// to leave the open after the PDF document is loaded; otherwise, . + /// The cancellation token to cancel the conversion. Please note that an ongoing rendering cannot be cancelled (the next page will not be rendered though). + /// The password for opening the PDF. Use if no password is needed. + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the all pages. Use if the original width (per page) should be used. + /// The height of all pages. Use if the original height (per page) should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// The rendered PDF pages as images. + [Obsolete("This method is for backward compatibility. Use PDFtoImage.Conversion instead.", false)] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] + public static async IAsyncEnumerable ToImagesAsync(Stream pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) + { + await foreach (var image in PDFtoImage.Conversion.ToImagesAsync(pdfStream, leaveOpen, password, new(dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor), cancellationToken)) + { + yield return image; + } + } +#endif + } +} \ No newline at end of file diff --git a/src/PDFtoImage/Conversion.cs b/src/PDFtoImage/Conversion.cs index 5e6a525b..8fad996b 100644 --- a/src/PDFtoImage/Conversion.cs +++ b/src/PDFtoImage/Conversion.cs @@ -12,15 +12,20 @@ namespace PDFtoImage { -#if NET8_0_OR_GREATER -#pragma warning disable CA1510 // Use ArgumentNullException throw helper -#endif /// /// Provides methods to render PDFs into images. /// - public static class Conversion +#if NET8_0_OR_GREATER +#pragma warning disable CA1510 // Use ArgumentNullException throw helper +#endif +#if NET6_0_OR_GREATER + [SupportedOSPlatform("Windows")] + [SupportedOSPlatform("Linux")] + [SupportedOSPlatform("macOS")] + [SupportedOSPlatform("Android31.0")] +#endif + public static partial class Conversion { - #region SaveJpeg /// /// Renders a single page of a given PDF and saves it as a JPEG. /// @@ -28,24 +33,10 @@ public static class Conversion /// The PDF encoded as Base64. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveJpeg(string imageFilename, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveJpeg(string imageFilename, string pdfAsBase64String, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageFilename, SKEncodedImageFormat.Jpeg, pdfAsBase64String, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageFilename, SKEncodedImageFormat.Jpeg, pdfAsBase64String, password, page, options); } /// @@ -55,24 +46,10 @@ public static void SaveJpeg(string imageFilename, string pdfAsBase64String, stri /// The PDF encoded as Base64. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveJpeg(Stream imageStream, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveJpeg(Stream imageStream, string pdfAsBase64String, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageStream, SKEncodedImageFormat.Jpeg, pdfAsBase64String, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageStream, SKEncodedImageFormat.Jpeg, pdfAsBase64String, password, page, options); } /// @@ -82,24 +59,10 @@ public static void SaveJpeg(Stream imageStream, string pdfAsBase64String, string /// The PDF as a byte array. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveJpeg(string imageFilename, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveJpeg(string imageFilename, byte[] pdfAsByteArray, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageFilename, SKEncodedImageFormat.Jpeg, pdfAsByteArray, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageFilename, SKEncodedImageFormat.Jpeg, pdfAsByteArray, password, page, options); } /// @@ -109,24 +72,10 @@ public static void SaveJpeg(string imageFilename, byte[] pdfAsByteArray, string? /// The PDF as a byte array. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveJpeg(Stream imageStream, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveJpeg(Stream imageStream, byte[] pdfAsByteArray, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageStream, SKEncodedImageFormat.Jpeg, pdfAsByteArray, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageStream, SKEncodedImageFormat.Jpeg, pdfAsByteArray, password, page, options); } /// @@ -134,26 +83,13 @@ public static void SaveJpeg(Stream imageStream, byte[] pdfAsByteArray, string? p /// /// The output image file path. /// The PDF as a stream. + /// to leave the open after the PDF document is loaded; otherwise, . /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveJpeg(string imageFilename, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveJpeg(string imageFilename, Stream pdfStream, bool leaveOpen = false, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageFilename, SKEncodedImageFormat.Jpeg, pdfStream, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageFilename, SKEncodedImageFormat.Jpeg, pdfStream, leaveOpen, password, page, options); } /// @@ -161,30 +97,15 @@ public static void SaveJpeg(string imageFilename, Stream pdfStream, string? pass /// /// The output image stream. /// The PDF as a stream. + /// to leave the open after the PDF document is loaded; otherwise, . /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveJpeg(Stream imageStream, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveJpeg(Stream imageStream, Stream pdfStream, bool leaveOpen = false, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageStream, SKEncodedImageFormat.Jpeg, pdfStream, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageStream, SKEncodedImageFormat.Jpeg, pdfStream, leaveOpen, password, page, options); } - #endregion - #region SavePng /// /// Renders a single page of a given PDF and saves it as a PNG. /// @@ -192,24 +113,10 @@ public static void SaveJpeg(Stream imageStream, Stream pdfStream, string? passwo /// The PDF encoded as Base64. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SavePng(string imageFilename, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SavePng(string imageFilename, string pdfAsBase64String, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageFilename, SKEncodedImageFormat.Png, pdfAsBase64String, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageFilename, SKEncodedImageFormat.Png, pdfAsBase64String, password, page, options); } /// @@ -219,24 +126,10 @@ public static void SavePng(string imageFilename, string pdfAsBase64String, strin /// The PDF encoded as Base64. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SavePng(Stream imageStream, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SavePng(Stream imageStream, string pdfAsBase64String, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageStream, SKEncodedImageFormat.Png, pdfAsBase64String, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageStream, SKEncodedImageFormat.Png, pdfAsBase64String, password, page, options); } /// @@ -246,24 +139,10 @@ public static void SavePng(Stream imageStream, string pdfAsBase64String, string? /// The PDF as a byte array. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SavePng(string imageFilename, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SavePng(string imageFilename, byte[] pdfAsByteArray, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageFilename, SKEncodedImageFormat.Png, pdfAsByteArray, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageFilename, SKEncodedImageFormat.Png, pdfAsByteArray, password, page, options); } /// @@ -273,24 +152,10 @@ public static void SavePng(string imageFilename, byte[] pdfAsByteArray, string? /// The PDF as a byte array. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SavePng(Stream imageStream, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SavePng(Stream imageStream, byte[] pdfAsByteArray, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageStream, SKEncodedImageFormat.Png, pdfAsByteArray, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageStream, SKEncodedImageFormat.Png, pdfAsByteArray, password, page, options); } /// @@ -298,26 +163,13 @@ public static void SavePng(Stream imageStream, byte[] pdfAsByteArray, string? pa /// /// The output image file path. /// The PDF as a stream. + /// to leave the open after the PDF document is loaded; otherwise, . /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SavePng(string imageFilename, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SavePng(string imageFilename, Stream pdfStream, bool leaveOpen = false, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageFilename, SKEncodedImageFormat.Png, pdfStream, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageFilename, SKEncodedImageFormat.Png, pdfStream, leaveOpen, password, page, options); } /// @@ -325,30 +177,15 @@ public static void SavePng(string imageFilename, Stream pdfStream, string? passw /// /// The output image stream. /// The PDF as a stream. + /// to leave the open after the PDF document is loaded; otherwise, . /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SavePng(Stream imageStream, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SavePng(Stream imageStream, Stream pdfStream, bool leaveOpen = false, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageStream, SKEncodedImageFormat.Png, pdfStream, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageStream, SKEncodedImageFormat.Png, pdfStream, leaveOpen, password, page, options); } - #endregion - #region SaveWebp /// /// Renders a single page of a given PDF and saves it as a bitmap. /// @@ -356,24 +193,10 @@ public static void SavePng(Stream imageStream, Stream pdfStream, string? passwor /// The PDF encoded as Base64. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveWebp(string imageFilename, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveWebp(string imageFilename, string pdfAsBase64String, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageFilename, SKEncodedImageFormat.Webp, pdfAsBase64String, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageFilename, SKEncodedImageFormat.Webp, pdfAsBase64String, password, page, options); } /// @@ -383,24 +206,10 @@ public static void SaveWebp(string imageFilename, string pdfAsBase64String, stri /// The PDF encoded as Base64. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveWebp(Stream imageStream, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveWebp(Stream imageStream, string pdfAsBase64String, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageStream, SKEncodedImageFormat.Webp, pdfAsBase64String, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageStream, SKEncodedImageFormat.Webp, pdfAsBase64String, password, page, options); } /// @@ -410,24 +219,10 @@ public static void SaveWebp(Stream imageStream, string pdfAsBase64String, string /// The PDF as a byte array. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveWebp(string imageFilename, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveWebp(string imageFilename, byte[] pdfAsByteArray, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageFilename, SKEncodedImageFormat.Webp, pdfAsByteArray, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageFilename, SKEncodedImageFormat.Webp, pdfAsByteArray, password, page, options); } /// @@ -437,24 +232,10 @@ public static void SaveWebp(string imageFilename, byte[] pdfAsByteArray, string? /// The PDF as a byte array. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveWebp(Stream imageStream, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveWebp(Stream imageStream, byte[] pdfAsByteArray, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageStream, SKEncodedImageFormat.Webp, pdfAsByteArray, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageStream, SKEncodedImageFormat.Webp, pdfAsByteArray, password, page, options); } /// @@ -462,26 +243,13 @@ public static void SaveWebp(Stream imageStream, byte[] pdfAsByteArray, string? p /// /// The output image file path. /// The PDF as a stream. + /// to leave the open after the PDF document is loaded; otherwise, . /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveWebp(string imageFilename, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveWebp(string imageFilename, Stream pdfStream, bool leaveOpen = false, string? password = null, int page = 0, RenderOptions options = default) { - SaveImpl(imageFilename, SKEncodedImageFormat.Webp, pdfStream, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageFilename, SKEncodedImageFormat.Webp, pdfStream, leaveOpen, password, page, options); } /// @@ -489,144 +257,29 @@ public static void SaveWebp(string imageFilename, Stream pdfStream, string? pass /// /// The output image stream. /// The PDF as a stream. + /// to leave the open after the PDF document is loaded; otherwise, . /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static void SaveWebp(Stream imageStream, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) - { - SaveImpl(imageStream, SKEncodedImageFormat.Webp, pdfStream, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); - } - #endregion - - #region Internal save impl -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - internal static void SaveImpl(string imageFilename, SKEncodedImageFormat format, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// Additional options for PDF rendering. + public static void SaveWebp(Stream imageStream, Stream pdfStream, bool leaveOpen = false, string? password = null, int page = 0, RenderOptions options = default) { - if (imageFilename == null) - throw new ArgumentNullException(nameof(imageFilename)); - - using var fileStream = new FileStream(imageFilename, FileMode.Create, FileAccess.Write); - SaveImpl(fileStream, format, pdfAsBase64String, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + SaveImpl(imageStream, SKEncodedImageFormat.Webp, pdfStream, leaveOpen, password, page, options); } -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - internal static void SaveImpl(Stream imageStream, SKEncodedImageFormat format, string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) - { - if (imageStream == null) - throw new ArgumentNullException(nameof(imageStream)); - - using var bitmap = ToImage(pdfAsBase64String, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); - bitmap.Encode(imageStream, format, 100); - } - -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - internal static void SaveImpl(string imageFilename, SKEncodedImageFormat format, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) - { - if (imageFilename == null) - throw new ArgumentNullException(nameof(imageFilename)); - - using var fileStream = new FileStream(imageFilename, FileMode.Create, FileAccess.Write); - SaveImpl(fileStream, format, pdfAsByteArray, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); - } - -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - internal static void SaveImpl(Stream imageStream, SKEncodedImageFormat format, byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) - { - if (imageStream == null) - throw new ArgumentNullException(nameof(imageStream)); - - using var bitmap = ToImage(pdfAsByteArray, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); - bitmap.Encode(imageStream, format, 100); - } - -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - internal static void SaveImpl(string filename, SKEncodedImageFormat format, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) - { - using var fileStream = new FileStream(filename, FileMode.Create, FileAccess.Write); - SaveImpl(fileStream, format, pdfStream, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); - } - -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - internal static void SaveImpl(Stream stream, SKEncodedImageFormat format, Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) - { - using var bitmap = ToImage(pdfStream, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); - bitmap.Encode(stream, format, 100); - } - #endregion - - #region ToImage /// /// Renders a single page of a given PDF into an image. /// /// The PDF encoded as Base64. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . + /// Additional options for PDF rendering. /// The converted PDF page as an image. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static SKBitmap ToImage(string pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + public static SKBitmap ToImage(string pdfAsBase64String, string? password = null, int page = 0, RenderOptions options = default) { if (pdfAsBase64String == null) throw new ArgumentNullException(nameof(pdfAsBase64String)); - return ToImage(Convert.FromBase64String(pdfAsBase64String), password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + return ToImage(Convert.FromBase64String(pdfAsBase64String), password, page, options); } /// @@ -635,23 +288,13 @@ public static SKBitmap ToImage(string pdfAsBase64String, string? password = null /// The PDF as a byte array. /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . + /// Additional options for PDF rendering. /// The converted PDF page as an image. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static SKBitmap ToImage(byte[] pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + public static SKBitmap ToImage( + byte[] pdfAsByteArray, + string? password = null, + int page = 0, + RenderOptions options = default) { if (pdfAsByteArray == null) throw new ArgumentNullException(nameof(pdfAsByteArray)); @@ -659,34 +302,7 @@ public static SKBitmap ToImage(byte[] pdfAsByteArray, string? password = null, i // Base64 string -> byte[] -> MemoryStream using var pdfStream = new MemoryStream(pdfAsByteArray, false); - return ToImage(pdfStream, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); - } - - /// - /// Renders a single page of a given PDF into an image. - /// - /// The PDF as a stream. - /// The password for opening the PDF. Use if no password is needed. - /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . - /// The rendered PDF page as an image. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static SKBitmap ToImage(Stream pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) - { - return ToImage(pdfStream, false, password, page, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + return ToImage(pdfStream, false, password, page, options); } /// @@ -696,23 +312,9 @@ public static SKBitmap ToImage(Stream pdfStream, string? password = null, int pa /// to leave the open after the PDF document is loaded; otherwise, . /// The password for opening the PDF. Use if no password is needed. /// The specific page to be converted. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the desired . Use if the original width should be used. - /// The height of the desired . Use if the original height should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . + /// Additional options for PDF rendering. /// The rendered PDF page as an image. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static SKBitmap ToImage(Stream pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + public static SKBitmap ToImage(Stream pdfStream, bool leaveOpen = false, string? password = null, int page = 0, RenderOptions options = default) { if (pdfStream == null) throw new ArgumentNullException(nameof(pdfStream)); @@ -720,20 +322,23 @@ public static SKBitmap ToImage(Stream pdfStream, bool leaveOpen, string? passwor if (page < 0) throw new ArgumentOutOfRangeException(nameof(page), "The page number must be 0 or greater."); + if (options == default) + options = new(); + // correct the width and height for the given dpi // but only if both width and height are not specified (so the original sizes are corrected) - var correctFromDpi = width == null && height == null; + var correctFromDpi = options.Width == null && options.Height == null; NativeMethods.FPDF renderFlags = default; - if (withAnnotations) + if (options.WithAnnotations) renderFlags |= NativeMethods.FPDF.ANNOT; - if (!antiAliasing.HasFlag(PdfAntiAliasing.Text)) + if (!options.AntiAliasing.HasFlag(PdfAntiAliasing.Text)) renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHTEXT; - if (!antiAliasing.HasFlag(PdfAntiAliasing.Images)) + if (!options.AntiAliasing.HasFlag(PdfAntiAliasing.Images)) renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHIMAGE; - if (!antiAliasing.HasFlag(PdfAntiAliasing.Paths)) + if (!options.AntiAliasing.HasFlag(PdfAntiAliasing.Paths)) renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHPATH; // Stream -> Internals.PdfDocument @@ -742,72 +347,39 @@ public static SKBitmap ToImage(Stream pdfStream, bool leaveOpen, string? passwor if (page >= pdfDocument.PageSizes.Count) throw new ArgumentOutOfRangeException(nameof(page), $"The page number {page} does not exist. Highest page number available is {pdfDocument.PageSizes.Count - 1}."); + var currentWidth = (float?)options.Width; + var currentHeight = (float?)options.Height; var pageSize = pdfDocument.PageSizes[page]; // correct aspect ratio if requested - if (withAspectRatio) - AdjustForAspectRatio(ref width, ref height, pageSize); + if (options.WithAspectRatio) + AdjustForAspectRatio(ref currentWidth, ref currentHeight, pageSize); // Internals.PdfDocument -> Image - return pdfDocument.Render(page, width ?? (int)pageSize.Width, height ?? (int)pageSize.Height, dpi, dpi, rotation, renderFlags, withFormFill, correctFromDpi, backgroundColor ?? SKColors.White); + return pdfDocument.Render(page, currentWidth ?? pageSize.Width, currentHeight ?? pageSize.Height, options.Dpi, options.Dpi, options.Rotation, renderFlags, options.WithFormFill, correctFromDpi, options.BackgroundColor ?? SKColors.White, options.Bounds); } - #endregion - #region ToImages /// - /// Renders all pages of a given PDF into images. + /// Returns the page count of a given PDF. /// /// The PDF encoded as Base64. /// The password for opening the PDF. Use if no password is needed. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the all pages. Use if the original width (per page) should be used. - /// The height of all pages. Use if the original height (per page) should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . - /// The rendered PDF pages as images. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static IEnumerable ToImages(string pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// The page count of the given PDF. + public static int GetPageCount(string pdfAsBase64String, string? password = null) { if (pdfAsBase64String == null) throw new ArgumentNullException(nameof(pdfAsBase64String)); - foreach (var image in ToImages(Convert.FromBase64String(pdfAsBase64String), password, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)) - { - yield return image; - } + return GetPageCount(Convert.FromBase64String(pdfAsBase64String), password); } /// - /// Renders all pages of a given PDF into images. + /// Returns the page count of a given PDF. /// /// The PDF as a byte array. /// The password for opening the PDF. Use if no password is needed. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the all pages. Use if the original width (per page) should be used. - /// The height of all pages. Use if the original height (per page) should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . - /// The rendered PDF pages as images. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static IEnumerable ToImages(byte[] pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// The page count of the given PDF. + public static int GetPageCount(byte[] pdfAsByteArray, string? password = null) { if (pdfAsByteArray == null) throw new ArgumentNullException(nameof(pdfAsByteArray)); @@ -815,156 +387,49 @@ public static IEnumerable ToImages(byte[] pdfAsByteArray, string? pass // Base64 string -> byte[] -> MemoryStream using var pdfStream = new MemoryStream(pdfAsByteArray, false); - foreach (var image in ToImages(pdfStream, password, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor)) - { - yield return image; - } - } - - /// - /// Renders all pages of a given PDF into images. - /// - /// The PDF as a stream. - /// The password for opening the PDF. Use if no password is needed. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the all pages. Use if the original width (per page) should be used. - /// The height of all pages. Use if the original height (per page) should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . - /// The rendered PDF pages as images. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static IEnumerable ToImages(Stream pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) - { - return ToImages(pdfStream, false, password, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor); + return GetPageCount(pdfStream, false, password); } /// - /// Renders all pages of a given PDF into images. + /// Returns the page count of a given PDF. /// /// The PDF as a stream. /// to leave the open after the PDF document is loaded; otherwise, . /// The password for opening the PDF. Use if no password is needed. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the all pages. Use if the original width (per page) should be used. - /// The height of all pages. Use if the original height (per page) should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . - /// The rendered PDF pages as images. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static IEnumerable ToImages(Stream pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null) + /// The page count of the given PDF. + public static int GetPageCount(Stream pdfStream, bool leaveOpen = false, string? password = null) { if (pdfStream == null) throw new ArgumentNullException(nameof(pdfStream)); - // correct the width and height for the given dpi - // but only if both width and height are not specified (so the original sizes are corrected) - var correctFromDpi = width == null && height == null; - - NativeMethods.FPDF renderFlags = default; - - if (withAnnotations) - renderFlags |= NativeMethods.FPDF.ANNOT; - - if (!antiAliasing.HasFlag(PdfAntiAliasing.Text)) - renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHTEXT; - if (!antiAliasing.HasFlag(PdfAntiAliasing.Images)) - renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHIMAGE; - if (!antiAliasing.HasFlag(PdfAntiAliasing.Paths)) - renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHPATH; - - // Stream -> Internals.PdfDocument using var pdfDocument = PdfDocument.Load(pdfStream, password, !leaveOpen); - for (int i = 0; i < pdfDocument.PageSizes.Count; i++) - { - var currentWidth = width; - var currentHeight = height; - var pageSize = pdfDocument.PageSizes[i]; - - // correct aspect ratio if requested - if (withAspectRatio) - AdjustForAspectRatio(ref currentWidth, ref currentHeight, pageSize); - - // Internals.PdfDocument -> Image - yield return pdfDocument.Render(i, currentWidth ?? (int)pageSize.Width, currentHeight ?? (int)pageSize.Height, dpi, dpi, rotation, renderFlags, withFormFill, correctFromDpi, backgroundColor ?? SKColors.White); - } + return pdfDocument.PageSizes.Count; } - #endregion - #region ToImagesAsnyc -#if NET6_0_OR_GREATER /// - /// Renders all pages of a given PDF into images. + /// Returns the PDF page size for a given page number. /// /// The PDF encoded as Base64. - /// The cancellation token to cancel the conversion. Please note that an ongoing rendering cannot be cancelled (the next page will not be rendered though). + /// The specific page to query the size for. /// The password for opening the PDF. Use if no password is needed. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the all pages. Use if the original width (per page) should be used. - /// The height of all pages. Use if the original height (per page) should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . - /// The rendered PDF pages as images. - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] - public static async IAsyncEnumerable ToImagesAsync(string pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) + /// The page size containing width and height. + public static SizeF GetPageSize(string pdfAsBase64String, int page, string? password = null) { if (pdfAsBase64String == null) throw new ArgumentNullException(nameof(pdfAsBase64String)); - await foreach (var image in ToImagesAsync(Convert.FromBase64String(pdfAsBase64String), password, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor, cancellationToken)) - { - yield return image; - } + return GetPageSize(Convert.FromBase64String(pdfAsBase64String), page, password); } /// - /// Renders all pages of a given PDF into images. + /// Returns the PDF page size for a given page number. /// /// The PDF as a byte array. - /// The cancellation token to cancel the conversion. Please note that an ongoing rendering cannot be cancelled (the next page will not be rendered though). + /// The specific page to query the size for. /// The password for opening the PDF. Use if no password is needed. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the all pages. Use if the original width (per page) should be used. - /// The height of all pages. Use if the original height (per page) should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . - /// The rendered PDF pages as images. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static async IAsyncEnumerable ToImagesAsync(byte[] pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) + /// The page size containing width and height. + public static SizeF GetPageSize(byte[] pdfAsByteArray, int page, string? password = null) { if (pdfAsByteArray == null) throw new ArgumentNullException(nameof(pdfAsByteArray)); @@ -972,142 +437,51 @@ public static async IAsyncEnumerable ToImagesAsync(byte[] pdfAsByteArr // Base64 string -> byte[] -> MemoryStream using var pdfStream = new MemoryStream(pdfAsByteArray, false); - await foreach (var image in ToImagesAsync(pdfStream, password, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor, cancellationToken)) - { - yield return image; - } - } - - /// - /// Renders all pages of a given PDF into images. - /// - /// The PDF as a stream. - /// The cancellation token to cancel the conversion. Please note that an ongoing rendering cannot be cancelled (the next page will not be rendered though). - /// The password for opening the PDF. Use if no password is needed. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the all pages. Use if the original width (per page) should be used. - /// The height of all pages. Use if the original height (per page) should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . - /// The rendered PDF pages as images. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static async IAsyncEnumerable ToImagesAsync(Stream pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) - { - await foreach (var image in ToImagesAsync(pdfStream, false, password, dpi, width, height, withAnnotations, withFormFill, withAspectRatio, rotation, antiAliasing, backgroundColor, cancellationToken)) - { - yield return image; - } + return GetPageSize(pdfStream, false, page, password); } /// - /// Renders all pages of a given PDF into images. + /// Returns the PDF page size for a given page number. /// /// The PDF as a stream. /// to leave the open after the PDF document is loaded; otherwise, . - /// The cancellation token to cancel the conversion. Please note that an ongoing rendering cannot be cancelled (the next page will not be rendered though). + /// The specific page to query the size for. /// The password for opening the PDF. Use if no password is needed. - /// The DPI scaling to use for rasterization of the PDF. - /// The width of the all pages. Use if the original width (per page) should be used. - /// The height of all pages. Use if the original height (per page) should be used. - /// Specifies whether annotations be rendered. - /// Specifies whether form filling will be rendered. - /// Specifies that or should be adjusted for aspect ratio (either one must be ). - /// Specifies the rotation at 90 degree intervals. - /// Specifies which parts of the PDF should be anti-aliasing for rendering. - /// Specifies the background color. Defaults to . - /// The rendered PDF pages as images. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static async IAsyncEnumerable ToImagesAsync(Stream pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PdfRotation rotation = PdfRotation.Rotate0, PdfAntiAliasing antiAliasing = PdfAntiAliasing.All, SKColor? backgroundColor = null, [EnumeratorCancellation] CancellationToken cancellationToken = default) + /// The page size containing width and height. + public static SizeF GetPageSize(Stream pdfStream, bool leaveOpen = false, int page = 0, string? password = null) { if (pdfStream == null) throw new ArgumentNullException(nameof(pdfStream)); - // correct the width and height for the given dpi - // but only if both width and height are not specified (so the original sizes are corrected) - var correctFromDpi = width == null && height == null; - - NativeMethods.FPDF renderFlags = default; - - if (withAnnotations) - renderFlags |= NativeMethods.FPDF.ANNOT; - - if (!antiAliasing.HasFlag(PdfAntiAliasing.Text)) - renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHTEXT; - if (!antiAliasing.HasFlag(PdfAntiAliasing.Images)) - renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHIMAGE; - if (!antiAliasing.HasFlag(PdfAntiAliasing.Paths)) - renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHPATH; - - // Stream -> Internals.PdfDocument - using var pdfDocument = await Task.Run(() => PdfDocument.Load(pdfStream, password, !leaveOpen), cancellationToken); - - for (int i = 0; i < pdfDocument.PageSizes.Count; i++) - { - cancellationToken.ThrowIfCancellationRequested(); - - var currentWidth = width; - var currentHeight = height; - var pageSize = pdfDocument.PageSizes[i]; + if (page < 0) + throw new ArgumentOutOfRangeException(nameof(page), "The page number must be 0 or greater."); - // correct aspect ratio if requested - if (withAspectRatio) - AdjustForAspectRatio(ref currentWidth, ref currentHeight, pageSize); + using var pdfDocument = PdfDocument.Load(pdfStream, password, !leaveOpen); - // Internals.PdfDocument -> Image - yield return await Task.Run(() => pdfDocument.Render(i, currentWidth ?? (int)pageSize.Width, currentHeight ?? (int)pageSize.Height, dpi, dpi, rotation, renderFlags, withFormFill, correctFromDpi, backgroundColor ?? SKColors.White), cancellationToken); - } + return pdfDocument.PageSizes[page]; } -#endif - #endregion - #region GetPageCount /// - /// Returns the page count of a given PDF. + /// Returns the sizes of all PDF pages. /// /// The PDF encoded as Base64. /// The password for opening the PDF. Use if no password is needed. - /// The page count of the given PDF. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static int GetPageCount(string pdfAsBase64String, string? password = null) + /// The page sizes containing width and height. + public static IList GetPageSizes(string pdfAsBase64String, string? password = null) { if (pdfAsBase64String == null) throw new ArgumentNullException(nameof(pdfAsBase64String)); - return GetPageCount(Convert.FromBase64String(pdfAsBase64String), password); + return GetPageSizes(Convert.FromBase64String(pdfAsBase64String), password); } /// - /// Returns the page count of a given PDF. + /// Returns the sizes of all PDF pages. /// /// The PDF as a byte array. /// The password for opening the PDF. Use if no password is needed. - /// The page count of the given PDF. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static int GetPageCount(byte[] pdfAsByteArray, string? password = null) + /// The page sizes containing width and height. + public static IList GetPageSizes(byte[] pdfAsByteArray, string? password = null) { if (pdfAsByteArray == null) throw new ArgumentNullException(nameof(pdfAsByteArray)); @@ -1115,86 +489,52 @@ public static int GetPageCount(byte[] pdfAsByteArray, string? password = null) // Base64 string -> byte[] -> MemoryStream using var pdfStream = new MemoryStream(pdfAsByteArray, false); - return GetPageCount(pdfStream, password); - } - - /// - /// Returns the page count of a given PDF. - /// - /// The PDF as a stream. - /// The password for opening the PDF. Use if no password is needed. - /// The page count of the given PDF. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static int GetPageCount(Stream pdfStream, string? password = null) - { - return GetPageCount(pdfStream, false, password); + return GetPageSizes(pdfStream, false, password); } /// - /// Returns the page count of a given PDF. + /// Returns the sizes of all PDF pages. /// /// The PDF as a stream. /// to leave the open after the PDF document is loaded; otherwise, . /// The password for opening the PDF. Use if no password is needed. - /// The page count of the given PDF. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static int GetPageCount(Stream pdfStream, bool leaveOpen, string? password = null) + /// The page sizes containing width and height. + public static IList GetPageSizes(Stream pdfStream, bool leaveOpen = false, string? password = null) { if (pdfStream == null) throw new ArgumentNullException(nameof(pdfStream)); using var pdfDocument = PdfDocument.Load(pdfStream, password, !leaveOpen); - return pdfDocument.PageSizes.Count; + return pdfDocument.PageSizes.ToList().AsReadOnly(); } - #endregion - #region GetPageSize /// - /// Returns the PDF page size for a given page number. + /// Renders all pages of a given PDF into images. /// /// The PDF encoded as Base64. - /// The specific page to query the size for. /// The password for opening the PDF. Use if no password is needed. - /// The page size containing width and height. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static SizeF GetPageSize(string pdfAsBase64String, int page, string? password = null) + /// Additional options for PDF rendering. + /// The rendered PDF pages as images. + public static IEnumerable ToImages(string pdfAsBase64String, string? password = null, RenderOptions options = default) { if (pdfAsBase64String == null) throw new ArgumentNullException(nameof(pdfAsBase64String)); - return GetPageSize(Convert.FromBase64String(pdfAsBase64String), page, password); + foreach (var image in ToImages(Convert.FromBase64String(pdfAsBase64String), password, options)) + { + yield return image; + } } /// - /// Returns the PDF page size for a given page number. + /// Renders all pages of a given PDF into images. /// /// The PDF as a byte array. - /// The specific page to query the size for. /// The password for opening the PDF. Use if no password is needed. - /// The page size containing width and height. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static SizeF GetPageSize(byte[] pdfAsByteArray, int page, string? password = null) + /// Additional options for PDF rendering. + /// The rendered PDF pages as images. + public static IEnumerable ToImages(byte[] pdfAsByteArray, string? password = null, RenderOptions options = default) { if (pdfAsByteArray == null) throw new ArgumentNullException(nameof(pdfAsByteArray)); @@ -1202,89 +542,91 @@ public static SizeF GetPageSize(byte[] pdfAsByteArray, int page, string? passwor // Base64 string -> byte[] -> MemoryStream using var pdfStream = new MemoryStream(pdfAsByteArray, false); - return GetPageSize(pdfStream, page, password); - } - - /// - /// Returns the PDF page size for a given page number. - /// - /// The PDF as a stream. - /// The specific page to query the size for. - /// The password for opening the PDF. Use if no password is needed. - /// The page size containing width and height. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static SizeF GetPageSize(Stream pdfStream, int page, string? password = null) - { - return GetPageSize(pdfStream, false, page, password); + foreach (var image in ToImages(pdfStream, false, password, options)) + { + yield return image; + } } /// - /// Returns the PDF page size for a given page number. + /// Renders all pages of a given PDF into images. /// /// The PDF as a stream. /// to leave the open after the PDF document is loaded; otherwise, . - /// The specific page to query the size for. /// The password for opening the PDF. Use if no password is needed. - /// The page size containing width and height. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static SizeF GetPageSize(Stream pdfStream, bool leaveOpen, int page, string? password = null) + /// Additional options for PDF rendering. + /// The rendered PDF pages as images. + public static IEnumerable ToImages(Stream pdfStream, bool leaveOpen = false, string? password = null, RenderOptions options = default) { if (pdfStream == null) throw new ArgumentNullException(nameof(pdfStream)); - if (page < 0) - throw new ArgumentOutOfRangeException(nameof(page), "The page number must be 0 or greater."); + if (options == default) + options = new(); + + // correct the width and height for the given dpi + // but only if both width and height are not specified (so the original sizes are corrected) + var correctFromDpi = options.Width == null && options.Height == null; + + NativeMethods.FPDF renderFlags = default; + + if (options.WithAnnotations) + renderFlags |= NativeMethods.FPDF.ANNOT; + + if (!options.AntiAliasing.HasFlag(PdfAntiAliasing.Text)) + renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHTEXT; + if (!options.AntiAliasing.HasFlag(PdfAntiAliasing.Images)) + renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHIMAGE; + if (!options.AntiAliasing.HasFlag(PdfAntiAliasing.Paths)) + renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHPATH; + // Stream -> Internals.PdfDocument using var pdfDocument = PdfDocument.Load(pdfStream, password, !leaveOpen); - return pdfDocument.PageSizes[page]; + for (int i = 0; i < pdfDocument.PageSizes.Count; i++) + { + var currentWidth = (float?)options.Width; + var currentHeight = (float?)options.Height; + var pageSize = pdfDocument.PageSizes[i]; + + // correct aspect ratio if requested + if (options.WithAspectRatio) + AdjustForAspectRatio(ref currentWidth, ref currentHeight, pageSize); + + // Internals.PdfDocument -> Image + yield return pdfDocument.Render(i, currentWidth ?? pageSize.Width, currentHeight ?? pageSize.Height, options.Dpi, options.Dpi, options.Rotation, renderFlags, options.WithFormFill, correctFromDpi, options.BackgroundColor ?? SKColors.White, options.Bounds); + } } - #endregion - #region GetPageSizes +#if NET6_0_OR_GREATER /// - /// Returns the sizes of all PDF pages. + /// Renders all pages of a given PDF into images. /// /// The PDF encoded as Base64. + /// The cancellation token to cancel the conversion. Please note that an ongoing rendering cannot be cancelled (the next page will not be rendered though). /// The password for opening the PDF. Use if no password is needed. - /// The page sizes containing width and height. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static IList GetPageSizes(string pdfAsBase64String, string? password = null) + /// Additional options for PDF rendering. + /// The rendered PDF pages as images. + public static async IAsyncEnumerable ToImagesAsync(string pdfAsBase64String, string? password = null, RenderOptions options = default, [EnumeratorCancellation] CancellationToken cancellationToken = default) { if (pdfAsBase64String == null) throw new ArgumentNullException(nameof(pdfAsBase64String)); - return GetPageSizes(Convert.FromBase64String(pdfAsBase64String), password); + await foreach (var image in ToImagesAsync(Convert.FromBase64String(pdfAsBase64String), password, options, cancellationToken)) + { + yield return image; + } } /// - /// Returns the sizes of all PDF pages. + /// Renders all pages of a given PDF into images. /// /// The PDF as a byte array. + /// The cancellation token to cancel the conversion. Please note that an ongoing rendering cannot be cancelled (the next page will not be rendered though). /// The password for opening the PDF. Use if no password is needed. - /// The page sizes containing width and height. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static IList GetPageSizes(byte[] pdfAsByteArray, string? password = null) + /// Additional options for PDF rendering. + /// The rendered PDF pages as images. + public static async IAsyncEnumerable ToImagesAsync(byte[] pdfAsByteArray, string? password = null, RenderOptions options = default, [EnumeratorCancellation] CancellationToken cancellationToken = default) { if (pdfAsByteArray == null) throw new ArgumentNullException(nameof(pdfAsByteArray)); @@ -1292,59 +634,123 @@ public static IList GetPageSizes(byte[] pdfAsByteArray, string? password // Base64 string -> byte[] -> MemoryStream using var pdfStream = new MemoryStream(pdfAsByteArray, false); - return GetPageSizes(pdfStream, password); + await foreach (var image in ToImagesAsync(pdfStream, false, password, options, cancellationToken)) + { + yield return image; + } } /// - /// Returns the sizes of all PDF pages. + /// Renders all pages of a given PDF into images. /// /// The PDF as a stream. + /// to leave the open after the PDF document is loaded; otherwise, . + /// The cancellation token to cancel the conversion. Please note that an ongoing rendering cannot be cancelled (the next page will not be rendered though). /// The password for opening the PDF. Use if no password is needed. - /// The page sizes containing width and height. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] + /// Additional options for PDF rendering. + /// The rendered PDF pages as images. + public static async IAsyncEnumerable ToImagesAsync(Stream pdfStream, bool leaveOpen = false, string? password = null, RenderOptions options = default, [EnumeratorCancellation] CancellationToken cancellationToken = default) + { + if (pdfStream == null) + throw new ArgumentNullException(nameof(pdfStream)); + + if (options == default) + options = new(); + + // correct the width and height for the given dpi + // but only if both width and height are not specified (so the original sizes are corrected) + var correctFromDpi = options.Width == null && options.Height == null; + + NativeMethods.FPDF renderFlags = default; + + if (options.WithAnnotations) + renderFlags |= NativeMethods.FPDF.ANNOT; + + if (!options.AntiAliasing.HasFlag(PdfAntiAliasing.Text)) + renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHTEXT; + if (!options.AntiAliasing.HasFlag(PdfAntiAliasing.Images)) + renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHIMAGE; + if (!options.AntiAliasing.HasFlag(PdfAntiAliasing.Paths)) + renderFlags |= NativeMethods.FPDF.RENDER_NO_SMOOTHPATH; + + // Stream -> Internals.PdfDocument + using var pdfDocument = await Task.Run(() => PdfDocument.Load(pdfStream, password, !leaveOpen), cancellationToken); + + for (int i = 0; i < pdfDocument.PageSizes.Count; i++) + { + cancellationToken.ThrowIfCancellationRequested(); + + var currentWidth = (float?)options.Width; + var currentHeight = (float?)options.Height; + var pageSize = pdfDocument.PageSizes[i]; + + // correct aspect ratio if requested + if (options.WithAspectRatio) + AdjustForAspectRatio(ref currentWidth, ref currentHeight, pageSize); + + // Internals.PdfDocument -> Image + yield return await Task.Run(() => pdfDocument.Render(i, currentWidth ?? pageSize.Width, currentHeight ?? pageSize.Height, options.Dpi, options.Dpi, options.Rotation, renderFlags, options.WithFormFill, correctFromDpi, options.BackgroundColor ?? SKColors.White, options.Bounds), cancellationToken); + } + } #endif - public static IList GetPageSizes(Stream pdfStream, string? password = null) + + internal static void SaveImpl(string imageFilename, SKEncodedImageFormat format, string pdfAsBase64String, string? password = null, int page = 0, RenderOptions options = default) { - return GetPageSizes(pdfStream, false, password); + if (imageFilename == null) + throw new ArgumentNullException(nameof(imageFilename)); + + using var fileStream = new FileStream(imageFilename, FileMode.Create, FileAccess.Write); + SaveImpl(fileStream, format, pdfAsBase64String, password, page, options); } - /// - /// Returns the sizes of all PDF pages. - /// - /// The PDF as a stream. - /// to leave the open after the PDF document is loaded; otherwise, . - /// The password for opening the PDF. Use if no password is needed. - /// The page sizes containing width and height. -#if NET6_0_OR_GREATER - [SupportedOSPlatform("Windows")] - [SupportedOSPlatform("Linux")] - [SupportedOSPlatform("macOS")] - [SupportedOSPlatform("Android31.0")] -#endif - public static IList GetPageSizes(Stream pdfStream, bool leaveOpen, string? password = null) + internal static void SaveImpl(Stream imageStream, SKEncodedImageFormat format, string pdfAsBase64String, string? password = null, int page = 0, RenderOptions options = default) { - if (pdfStream == null) - throw new ArgumentNullException(nameof(pdfStream)); + if (imageStream == null) + throw new ArgumentNullException(nameof(imageStream)); - using var pdfDocument = PdfDocument.Load(pdfStream, password, !leaveOpen); + using var bitmap = ToImage(pdfAsBase64String, password, page, options); + bitmap.Encode(imageStream, format, 100); + } - return pdfDocument.PageSizes.ToList().AsReadOnly(); + internal static void SaveImpl(string imageFilename, SKEncodedImageFormat format, byte[] pdfAsByteArray, string? password = null, int page = 0, RenderOptions options = default) + { + if (imageFilename == null) + throw new ArgumentNullException(nameof(imageFilename)); + + using var fileStream = new FileStream(imageFilename, FileMode.Create, FileAccess.Write); + SaveImpl(fileStream, format, pdfAsByteArray, password, page, options); + } + + internal static void SaveImpl(string filename, SKEncodedImageFormat format, Stream pdfStream, bool leaveOpen = false, string? password = null, int page = 0, RenderOptions options = default) + { + using var fileStream = new FileStream(filename, FileMode.Create, FileAccess.Write); + SaveImpl(fileStream, format, pdfStream, leaveOpen, password, page, options); + } + + internal static void SaveImpl(Stream imageStream, SKEncodedImageFormat format, byte[] pdfAsByteArray, string? password = null, int page = 0, RenderOptions options = default) + { + if (imageStream == null) + throw new ArgumentNullException(nameof(imageStream)); + + using var bitmap = ToImage(pdfAsByteArray, password, page, options); + bitmap.Encode(imageStream, format, 100); + } + + internal static void SaveImpl(Stream stream, SKEncodedImageFormat format, Stream pdfStream, bool leaveOpen = false, string? password = null, int page = 0, RenderOptions options = default) + { + using var bitmap = ToImage(pdfStream, leaveOpen, password, page, options); + bitmap.Encode(stream, format, 100); } - #endregion - private static void AdjustForAspectRatio(ref int? width, ref int? height, SizeF pageSize) + private static void AdjustForAspectRatio(ref float? width, ref float? height, SizeF pageSize) { if (width == null && height != null) { - width = (int)Math.Round((pageSize.Width / pageSize.Height) * height.Value); + width = pageSize.Width / pageSize.Height * height.Value; } else if (width != null && height == null) { - height = (int)Math.Round((pageSize.Height / pageSize.Width) * width.Value); + height = pageSize.Height / pageSize.Width * width.Value; } } } diff --git a/src/PDFtoImage/Internals/NativeMethods.cs b/src/PDFtoImage/Internals/NativeMethods.cs index 4d29841b..21c533b4 100644 --- a/src/PDFtoImage/Internals/NativeMethods.cs +++ b/src/PDFtoImage/Internals/NativeMethods.cs @@ -2,6 +2,7 @@ using System.IO; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using System.Security; namespace PDFtoImage.Internals { @@ -178,11 +179,11 @@ public static void FPDF_ClosePage(IntPtr page) } } - public static void FPDF_RenderPageBitmap(IntPtr bitmapHandle, IntPtr page, int start_x, int start_y, int size_x, int size_y, int rotate, FPDF flags) + public static void FPDF_RenderPageBitmap(IntPtr bitmap, IntPtr page, int start_x, int start_y, int size_x, int size_y, int rotate, FPDF flags) { lock (LockString) { - Imports.FPDF_RenderPageBitmap(bitmapHandle, page, start_x, start_y, size_x, size_y, rotate, flags); + Imports.FPDF_RenderPageBitmap(bitmap, page, start_x, start_y, size_x, size_y, rotate, flags); } } @@ -526,7 +527,7 @@ private static partial class Imports public static extern void FPDF_ClosePage(IntPtr page); [DllImport("pdfium", CallingConvention = CallingConvention.Cdecl)] - public static extern void FPDF_RenderPageBitmap(IntPtr bitmapHandle, IntPtr page, int start_x, int start_y, int size_x, int size_y, int rotate, FPDF flags); + public static extern void FPDF_RenderPageBitmap(IntPtr bitmap, IntPtr page, int start_x, int start_y, int size_x, int size_y, int rotate, FPDF flags); [DllImport("pdfium", CallingConvention = CallingConvention.Cdecl)] public static extern int FPDF_GetPageSizeByIndex(IntPtr document, int page_index, out double width, out double height); diff --git a/src/PDFtoImage/Internals/PdfDocument.cs b/src/PDFtoImage/Internals/PdfDocument.cs index d299de70..ff6b6a58 100644 --- a/src/PDFtoImage/Internals/PdfDocument.cs +++ b/src/PDFtoImage/Internals/PdfDocument.cs @@ -60,8 +60,9 @@ private PdfDocument(Stream stream, string? password, bool disposeStream) /// Render form fills. /// Change and depending on the given and . /// The background color used for the output. + /// Specifies the bounds for the page relative to . This can be used for clipping (bounds inside of page) or additional margins (bounds outside of page). /// The rendered image. - public SKBitmap Render(int page, int width, int height, float dpiX, float dpiY, PdfRotation rotate, NativeMethods.FPDF flags, bool renderFormFill, bool correctFromDpi, SKColor backgroundColor) + public SKBitmap Render(int page, float width, float height, float dpiX, float dpiY, PdfRotation rotate, NativeMethods.FPDF flags, bool renderFormFill, bool correctFromDpi, SKColor backgroundColor, RectangleF? bounds) { if (_disposed) throw new ObjectDisposedException(GetType().Name); @@ -72,23 +73,76 @@ public SKBitmap Render(int page, int width, int height, float dpiX, float dpiY, (dpiX, dpiY) = (dpiY, dpiX); } + var pageWidth = PageSizes[page].Width; + var pageHeight = PageSizes[page].Height; + if (correctFromDpi) { - width = width * (int)dpiX / 72; - height = height * (int)dpiY / 72; + width *= dpiX / 72f; + height *= dpiY / 72f; + + pageWidth *= dpiX / 72f; + pageHeight *= dpiY / 72f; + + if (bounds != null) + { + bounds = new RectangleF( + bounds.Value.X * (dpiX / 72f), + bounds.Value.Y * (dpiY / 72f), + bounds.Value.Width * (dpiX / 72f), + bounds.Value.Height * (dpiY / 72f) + ); + } } - var bitmap = new SKBitmap(width, height, SKColorType.Bgra8888, SKAlphaType.Premul); - var handle = NativeMethods.FPDFBitmap_CreateEx(width, height, NativeMethods.FPDFBitmap.BGRA, bitmap.GetPixels(), width * 4); + if (bounds != null) + { + if (rotate == PdfRotation.Rotate90) + { + bounds = new RectangleF( + width - bounds.Value.Height - bounds.Value.Y, + bounds.Value.X, + bounds.Value.Width, + bounds.Value.Height + ); + } + else if (rotate == PdfRotation.Rotate270) + { + bounds = new RectangleF( + bounds.Value.Y, + height - bounds.Value.Width - bounds.Value.X, + bounds.Value.Width, + bounds.Value.Height + ); + } + else if (rotate == PdfRotation.Rotate180) + { + bounds = new RectangleF( + width - bounds.Value.Width - bounds.Value.X, + height - bounds.Value.Height - bounds.Value.Y, + bounds.Value.Width, + bounds.Value.Height + ); + } + } + + width = (float)Math.Round(width); + height = (float)Math.Round(height); + + var bitmap = new SKBitmap((int)width, (int)height, SKColorType.Bgra8888, SKAlphaType.Premul); + var handle = NativeMethods.FPDFBitmap_CreateEx((int)width, (int)height, NativeMethods.FPDFBitmap.BGRA, bitmap.GetPixels(), (int)width * 4); try { - NativeMethods.FPDFBitmap_FillRect(handle, 0, 0, width, height, (uint)backgroundColor); + NativeMethods.FPDFBitmap_FillRect(handle, 0, 0, (int)width, (int)height, (uint)backgroundColor); bool success = _file!.RenderPDFPageToBitmap( page, handle, - 0, 0, width, height, + bounds != null ? -(int)Math.Round(bounds.Value.X * (pageWidth / bounds.Value.Width)) : 0, + bounds != null ? -(int)Math.Round(bounds.Value.Y * (pageHeight / bounds.Value.Height)) : 0, + bounds != null ? (int)Math.Round(pageWidth * (width / bounds.Value.Width)) : (int)width, + bounds != null ? (int)Math.Round(pageHeight * (height / bounds.Value.Height)) : (int)height, (int)rotate, flags, renderFormFill @@ -106,7 +160,6 @@ public SKBitmap Render(int page, int width, int height, float dpiX, float dpiY, } /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// 2 public void Dispose() { Dispose(true); @@ -119,11 +172,8 @@ private void Dispose(bool disposing) { if (!_disposed && disposing) { - if (_file != null) - { - _file.Dispose(); - _file = null; - } + _file?.Dispose(); + _file = null; _disposed = true; } diff --git a/src/PDFtoImage/PDFtoImage.csproj b/src/PDFtoImage/PDFtoImage.csproj index 871cbf4f..c67decb1 100644 --- a/src/PDFtoImage/PDFtoImage.csproj +++ b/src/PDFtoImage/PDFtoImage.csproj @@ -13,8 +13,8 @@ - 3.1.0 - + 4.0.0 + preview David Sungaila false MIT @@ -22,9 +22,8 @@ https://github.com/sungaila/PDFtoImage https://raw.githubusercontent.com/sungaila/PDFtoImage/master/etc/Icon_128.png A .NET library to render PDF files into images. - - Added support for Mono. -- Added support for Unity. -- Added support for UWP. + - Added optional parameter Bounds. +- RenderOptions introduced for most API calls. This is a breaking change, see README for more information. PDF Bitmap Image Convert Conversion C# PDFium SkiaSharp Skia PNG JPG JPEG WEBP Xamarin Android MonoAndroid MAUI wasm WebAssembly https://github.com/sungaila/PDFtoImage.git git @@ -75,9 +74,9 @@ - - - + + + @@ -96,14 +95,14 @@ - + - + diff --git a/src/PDFtoImage/PublicAPI/monoandroid10.0/PublicAPI.Shipped.txt b/src/PDFtoImage/PublicAPI/monoandroid10.0/PublicAPI.Shipped.txt index 3236b830..932f121b 100644 --- a/src/PDFtoImage/PublicAPI/monoandroid10.0/PublicAPI.Shipped.txt +++ b/src/PDFtoImage/PublicAPI/monoandroid10.0/PublicAPI.Shipped.txt @@ -1,46 +1,33 @@ #nullable enable -PDFtoImage.Conversion -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -PDFtoImage.Resource -PDFtoImage.Resource.Attribute -PDFtoImage.Resource.Resource() -> void -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +PDFtoImage.RenderOptions +PDFtoImage.RenderOptions.AntiAliasing.get -> PDFtoImage.PdfAntiAliasing +PDFtoImage.RenderOptions.AntiAliasing.init -> void +PDFtoImage.RenderOptions.BackgroundColor.get -> SkiaSharp.SKColor? +PDFtoImage.RenderOptions.BackgroundColor.init -> void +PDFtoImage.RenderOptions.Bounds.get -> System.Drawing.RectangleF? +PDFtoImage.RenderOptions.Bounds.init -> void +PDFtoImage.RenderOptions.Dpi.get -> int +PDFtoImage.RenderOptions.Dpi.init -> void +PDFtoImage.RenderOptions.Height.get -> int? +PDFtoImage.RenderOptions.Height.init -> void +PDFtoImage.RenderOptions.RenderOptions() -> void +PDFtoImage.RenderOptions.RenderOptions(int Dpi = 300, int? Width = null, int? Height = null, bool WithAnnotations = false, bool WithFormFill = false, bool WithAspectRatio = false, PDFtoImage.PdfRotation Rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing AntiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? BackgroundColor = null, System.Drawing.RectangleF? Bounds = null) -> void +PDFtoImage.RenderOptions.Rotation.get -> PDFtoImage.PdfRotation +PDFtoImage.RenderOptions.Rotation.init -> void +PDFtoImage.RenderOptions.Width.get -> int? +PDFtoImage.RenderOptions.Width.init -> void +PDFtoImage.RenderOptions.WithAnnotations.get -> bool +PDFtoImage.RenderOptions.WithAnnotations.init -> void +PDFtoImage.RenderOptions.WithAspectRatio.get -> bool +PDFtoImage.RenderOptions.WithAspectRatio.init -> void +PDFtoImage.RenderOptions.WithFormFill.get -> bool +PDFtoImage.RenderOptions.WithFormFill.init -> void +PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate0 = 0 -> PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate180 = 2 -> PDFtoImage.PdfRotation @@ -60,9 +47,64 @@ PDFtoImage.Exceptions.PdfUnknownException PDFtoImage.Exceptions.PdfUnknownException.PdfUnknownException() -> void PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException.PdfUnsupportedSecuritySchemeException() -> void -PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing \ No newline at end of file +PDFtoImage.Compatibility.Conversion +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +PDFtoImage.Conversion +static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> int +static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen = false, int page = 0, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! \ No newline at end of file diff --git a/src/PDFtoImage/PublicAPI/net462/PublicAPI.Shipped.txt b/src/PDFtoImage/PublicAPI/net462/PublicAPI.Shipped.txt index 22f77390..932f121b 100644 --- a/src/PDFtoImage/PublicAPI/net462/PublicAPI.Shipped.txt +++ b/src/PDFtoImage/PublicAPI/net462/PublicAPI.Shipped.txt @@ -1,43 +1,33 @@ #nullable enable -PDFtoImage.Conversion -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +PDFtoImage.RenderOptions +PDFtoImage.RenderOptions.AntiAliasing.get -> PDFtoImage.PdfAntiAliasing +PDFtoImage.RenderOptions.AntiAliasing.init -> void +PDFtoImage.RenderOptions.BackgroundColor.get -> SkiaSharp.SKColor? +PDFtoImage.RenderOptions.BackgroundColor.init -> void +PDFtoImage.RenderOptions.Bounds.get -> System.Drawing.RectangleF? +PDFtoImage.RenderOptions.Bounds.init -> void +PDFtoImage.RenderOptions.Dpi.get -> int +PDFtoImage.RenderOptions.Dpi.init -> void +PDFtoImage.RenderOptions.Height.get -> int? +PDFtoImage.RenderOptions.Height.init -> void +PDFtoImage.RenderOptions.RenderOptions() -> void +PDFtoImage.RenderOptions.RenderOptions(int Dpi = 300, int? Width = null, int? Height = null, bool WithAnnotations = false, bool WithFormFill = false, bool WithAspectRatio = false, PDFtoImage.PdfRotation Rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing AntiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? BackgroundColor = null, System.Drawing.RectangleF? Bounds = null) -> void +PDFtoImage.RenderOptions.Rotation.get -> PDFtoImage.PdfRotation +PDFtoImage.RenderOptions.Rotation.init -> void +PDFtoImage.RenderOptions.Width.get -> int? +PDFtoImage.RenderOptions.Width.init -> void +PDFtoImage.RenderOptions.WithAnnotations.get -> bool +PDFtoImage.RenderOptions.WithAnnotations.init -> void +PDFtoImage.RenderOptions.WithAspectRatio.get -> bool +PDFtoImage.RenderOptions.WithAspectRatio.init -> void +PDFtoImage.RenderOptions.WithFormFill.get -> bool +PDFtoImage.RenderOptions.WithFormFill.init -> void +PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate0 = 0 -> PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate180 = 2 -> PDFtoImage.PdfRotation @@ -57,9 +47,64 @@ PDFtoImage.Exceptions.PdfUnknownException PDFtoImage.Exceptions.PdfUnknownException.PdfUnknownException() -> void PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException.PdfUnsupportedSecuritySchemeException() -> void -PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing \ No newline at end of file +PDFtoImage.Compatibility.Conversion +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +PDFtoImage.Conversion +static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> int +static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen = false, int page = 0, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! \ No newline at end of file diff --git a/src/PDFtoImage/PublicAPI/net471/PublicAPI.Shipped.txt b/src/PDFtoImage/PublicAPI/net471/PublicAPI.Shipped.txt index 22f77390..932f121b 100644 --- a/src/PDFtoImage/PublicAPI/net471/PublicAPI.Shipped.txt +++ b/src/PDFtoImage/PublicAPI/net471/PublicAPI.Shipped.txt @@ -1,43 +1,33 @@ #nullable enable -PDFtoImage.Conversion -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +PDFtoImage.RenderOptions +PDFtoImage.RenderOptions.AntiAliasing.get -> PDFtoImage.PdfAntiAliasing +PDFtoImage.RenderOptions.AntiAliasing.init -> void +PDFtoImage.RenderOptions.BackgroundColor.get -> SkiaSharp.SKColor? +PDFtoImage.RenderOptions.BackgroundColor.init -> void +PDFtoImage.RenderOptions.Bounds.get -> System.Drawing.RectangleF? +PDFtoImage.RenderOptions.Bounds.init -> void +PDFtoImage.RenderOptions.Dpi.get -> int +PDFtoImage.RenderOptions.Dpi.init -> void +PDFtoImage.RenderOptions.Height.get -> int? +PDFtoImage.RenderOptions.Height.init -> void +PDFtoImage.RenderOptions.RenderOptions() -> void +PDFtoImage.RenderOptions.RenderOptions(int Dpi = 300, int? Width = null, int? Height = null, bool WithAnnotations = false, bool WithFormFill = false, bool WithAspectRatio = false, PDFtoImage.PdfRotation Rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing AntiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? BackgroundColor = null, System.Drawing.RectangleF? Bounds = null) -> void +PDFtoImage.RenderOptions.Rotation.get -> PDFtoImage.PdfRotation +PDFtoImage.RenderOptions.Rotation.init -> void +PDFtoImage.RenderOptions.Width.get -> int? +PDFtoImage.RenderOptions.Width.init -> void +PDFtoImage.RenderOptions.WithAnnotations.get -> bool +PDFtoImage.RenderOptions.WithAnnotations.init -> void +PDFtoImage.RenderOptions.WithAspectRatio.get -> bool +PDFtoImage.RenderOptions.WithAspectRatio.init -> void +PDFtoImage.RenderOptions.WithFormFill.get -> bool +PDFtoImage.RenderOptions.WithFormFill.init -> void +PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate0 = 0 -> PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate180 = 2 -> PDFtoImage.PdfRotation @@ -57,9 +47,64 @@ PDFtoImage.Exceptions.PdfUnknownException PDFtoImage.Exceptions.PdfUnknownException.PdfUnknownException() -> void PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException.PdfUnsupportedSecuritySchemeException() -> void -PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing \ No newline at end of file +PDFtoImage.Compatibility.Conversion +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +PDFtoImage.Conversion +static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> int +static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen = false, int page = 0, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! \ No newline at end of file diff --git a/src/PDFtoImage/PublicAPI/net481/PublicAPI.Shipped.txt b/src/PDFtoImage/PublicAPI/net481/PublicAPI.Shipped.txt index 22f77390..932f121b 100644 --- a/src/PDFtoImage/PublicAPI/net481/PublicAPI.Shipped.txt +++ b/src/PDFtoImage/PublicAPI/net481/PublicAPI.Shipped.txt @@ -1,43 +1,33 @@ #nullable enable -PDFtoImage.Conversion -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +PDFtoImage.RenderOptions +PDFtoImage.RenderOptions.AntiAliasing.get -> PDFtoImage.PdfAntiAliasing +PDFtoImage.RenderOptions.AntiAliasing.init -> void +PDFtoImage.RenderOptions.BackgroundColor.get -> SkiaSharp.SKColor? +PDFtoImage.RenderOptions.BackgroundColor.init -> void +PDFtoImage.RenderOptions.Bounds.get -> System.Drawing.RectangleF? +PDFtoImage.RenderOptions.Bounds.init -> void +PDFtoImage.RenderOptions.Dpi.get -> int +PDFtoImage.RenderOptions.Dpi.init -> void +PDFtoImage.RenderOptions.Height.get -> int? +PDFtoImage.RenderOptions.Height.init -> void +PDFtoImage.RenderOptions.RenderOptions() -> void +PDFtoImage.RenderOptions.RenderOptions(int Dpi = 300, int? Width = null, int? Height = null, bool WithAnnotations = false, bool WithFormFill = false, bool WithAspectRatio = false, PDFtoImage.PdfRotation Rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing AntiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? BackgroundColor = null, System.Drawing.RectangleF? Bounds = null) -> void +PDFtoImage.RenderOptions.Rotation.get -> PDFtoImage.PdfRotation +PDFtoImage.RenderOptions.Rotation.init -> void +PDFtoImage.RenderOptions.Width.get -> int? +PDFtoImage.RenderOptions.Width.init -> void +PDFtoImage.RenderOptions.WithAnnotations.get -> bool +PDFtoImage.RenderOptions.WithAnnotations.init -> void +PDFtoImage.RenderOptions.WithAspectRatio.get -> bool +PDFtoImage.RenderOptions.WithAspectRatio.init -> void +PDFtoImage.RenderOptions.WithFormFill.get -> bool +PDFtoImage.RenderOptions.WithFormFill.init -> void +PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate0 = 0 -> PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate180 = 2 -> PDFtoImage.PdfRotation @@ -57,9 +47,64 @@ PDFtoImage.Exceptions.PdfUnknownException PDFtoImage.Exceptions.PdfUnknownException.PdfUnknownException() -> void PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException.PdfUnsupportedSecuritySchemeException() -> void -PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing \ No newline at end of file +PDFtoImage.Compatibility.Conversion +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +PDFtoImage.Conversion +static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> int +static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen = false, int page = 0, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! \ No newline at end of file diff --git a/src/PDFtoImage/PublicAPI/net6.0/PublicAPI.Shipped.txt b/src/PDFtoImage/PublicAPI/net6.0/PublicAPI.Shipped.txt index 80946a18..9a4f382a 100644 --- a/src/PDFtoImage/PublicAPI/net6.0/PublicAPI.Shipped.txt +++ b/src/PDFtoImage/PublicAPI/net6.0/PublicAPI.Shipped.txt @@ -1,47 +1,33 @@ #nullable enable -PDFtoImage.Conversion -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +PDFtoImage.RenderOptions +PDFtoImage.RenderOptions.AntiAliasing.get -> PDFtoImage.PdfAntiAliasing +PDFtoImage.RenderOptions.AntiAliasing.init -> void +PDFtoImage.RenderOptions.BackgroundColor.get -> SkiaSharp.SKColor? +PDFtoImage.RenderOptions.BackgroundColor.init -> void +PDFtoImage.RenderOptions.Bounds.get -> System.Drawing.RectangleF? +PDFtoImage.RenderOptions.Bounds.init -> void +PDFtoImage.RenderOptions.Dpi.get -> int +PDFtoImage.RenderOptions.Dpi.init -> void +PDFtoImage.RenderOptions.Height.get -> int? +PDFtoImage.RenderOptions.Height.init -> void +PDFtoImage.RenderOptions.RenderOptions() -> void +PDFtoImage.RenderOptions.RenderOptions(int Dpi = 300, int? Width = null, int? Height = null, bool WithAnnotations = false, bool WithFormFill = false, bool WithAspectRatio = false, PDFtoImage.PdfRotation Rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing AntiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? BackgroundColor = null, System.Drawing.RectangleF? Bounds = null) -> void +PDFtoImage.RenderOptions.Rotation.get -> PDFtoImage.PdfRotation +PDFtoImage.RenderOptions.Rotation.init -> void +PDFtoImage.RenderOptions.Width.get -> int? +PDFtoImage.RenderOptions.Width.init -> void +PDFtoImage.RenderOptions.WithAnnotations.get -> bool +PDFtoImage.RenderOptions.WithAnnotations.init -> void +PDFtoImage.RenderOptions.WithAspectRatio.get -> bool +PDFtoImage.RenderOptions.WithAspectRatio.init -> void +PDFtoImage.RenderOptions.WithFormFill.get -> bool +PDFtoImage.RenderOptions.WithFormFill.init -> void +PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate0 = 0 -> PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate180 = 2 -> PDFtoImage.PdfRotation @@ -61,9 +47,71 @@ PDFtoImage.Exceptions.PdfUnknownException PDFtoImage.Exceptions.PdfUnknownException.PdfUnknownException() -> void PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException.PdfUnsupportedSecuritySchemeException() -> void -PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing \ No newline at end of file +PDFtoImage.Compatibility.Conversion +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +PDFtoImage.Conversion +static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> int +static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen = false, int page = 0, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! \ No newline at end of file diff --git a/src/PDFtoImage/PublicAPI/net7.0-android/PublicAPI.Shipped.txt b/src/PDFtoImage/PublicAPI/net7.0-android/PublicAPI.Shipped.txt index c6f4503b..9a4f382a 100644 --- a/src/PDFtoImage/PublicAPI/net7.0-android/PublicAPI.Shipped.txt +++ b/src/PDFtoImage/PublicAPI/net7.0-android/PublicAPI.Shipped.txt @@ -1,50 +1,33 @@ #nullable enable -PDFtoImage.Conversion -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -PDFtoImage.Resource -PDFtoImage.Resource.Attribute -PDFtoImage.Resource.Resource() -> void -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +PDFtoImage.RenderOptions +PDFtoImage.RenderOptions.AntiAliasing.get -> PDFtoImage.PdfAntiAliasing +PDFtoImage.RenderOptions.AntiAliasing.init -> void +PDFtoImage.RenderOptions.BackgroundColor.get -> SkiaSharp.SKColor? +PDFtoImage.RenderOptions.BackgroundColor.init -> void +PDFtoImage.RenderOptions.Bounds.get -> System.Drawing.RectangleF? +PDFtoImage.RenderOptions.Bounds.init -> void +PDFtoImage.RenderOptions.Dpi.get -> int +PDFtoImage.RenderOptions.Dpi.init -> void +PDFtoImage.RenderOptions.Height.get -> int? +PDFtoImage.RenderOptions.Height.init -> void +PDFtoImage.RenderOptions.RenderOptions() -> void +PDFtoImage.RenderOptions.RenderOptions(int Dpi = 300, int? Width = null, int? Height = null, bool WithAnnotations = false, bool WithFormFill = false, bool WithAspectRatio = false, PDFtoImage.PdfRotation Rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing AntiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? BackgroundColor = null, System.Drawing.RectangleF? Bounds = null) -> void +PDFtoImage.RenderOptions.Rotation.get -> PDFtoImage.PdfRotation +PDFtoImage.RenderOptions.Rotation.init -> void +PDFtoImage.RenderOptions.Width.get -> int? +PDFtoImage.RenderOptions.Width.init -> void +PDFtoImage.RenderOptions.WithAnnotations.get -> bool +PDFtoImage.RenderOptions.WithAnnotations.init -> void +PDFtoImage.RenderOptions.WithAspectRatio.get -> bool +PDFtoImage.RenderOptions.WithAspectRatio.init -> void +PDFtoImage.RenderOptions.WithFormFill.get -> bool +PDFtoImage.RenderOptions.WithFormFill.init -> void +PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate0 = 0 -> PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate180 = 2 -> PDFtoImage.PdfRotation @@ -64,9 +47,71 @@ PDFtoImage.Exceptions.PdfUnknownException PDFtoImage.Exceptions.PdfUnknownException.PdfUnknownException() -> void PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException.PdfUnsupportedSecuritySchemeException() -> void -PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing \ No newline at end of file +PDFtoImage.Compatibility.Conversion +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +PDFtoImage.Conversion +static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> int +static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen = false, int page = 0, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! \ No newline at end of file diff --git a/src/PDFtoImage/PublicAPI/net7.0/PublicAPI.Shipped.txt b/src/PDFtoImage/PublicAPI/net7.0/PublicAPI.Shipped.txt index 80946a18..9a4f382a 100644 --- a/src/PDFtoImage/PublicAPI/net7.0/PublicAPI.Shipped.txt +++ b/src/PDFtoImage/PublicAPI/net7.0/PublicAPI.Shipped.txt @@ -1,47 +1,33 @@ #nullable enable -PDFtoImage.Conversion -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +PDFtoImage.RenderOptions +PDFtoImage.RenderOptions.AntiAliasing.get -> PDFtoImage.PdfAntiAliasing +PDFtoImage.RenderOptions.AntiAliasing.init -> void +PDFtoImage.RenderOptions.BackgroundColor.get -> SkiaSharp.SKColor? +PDFtoImage.RenderOptions.BackgroundColor.init -> void +PDFtoImage.RenderOptions.Bounds.get -> System.Drawing.RectangleF? +PDFtoImage.RenderOptions.Bounds.init -> void +PDFtoImage.RenderOptions.Dpi.get -> int +PDFtoImage.RenderOptions.Dpi.init -> void +PDFtoImage.RenderOptions.Height.get -> int? +PDFtoImage.RenderOptions.Height.init -> void +PDFtoImage.RenderOptions.RenderOptions() -> void +PDFtoImage.RenderOptions.RenderOptions(int Dpi = 300, int? Width = null, int? Height = null, bool WithAnnotations = false, bool WithFormFill = false, bool WithAspectRatio = false, PDFtoImage.PdfRotation Rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing AntiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? BackgroundColor = null, System.Drawing.RectangleF? Bounds = null) -> void +PDFtoImage.RenderOptions.Rotation.get -> PDFtoImage.PdfRotation +PDFtoImage.RenderOptions.Rotation.init -> void +PDFtoImage.RenderOptions.Width.get -> int? +PDFtoImage.RenderOptions.Width.init -> void +PDFtoImage.RenderOptions.WithAnnotations.get -> bool +PDFtoImage.RenderOptions.WithAnnotations.init -> void +PDFtoImage.RenderOptions.WithAspectRatio.get -> bool +PDFtoImage.RenderOptions.WithAspectRatio.init -> void +PDFtoImage.RenderOptions.WithFormFill.get -> bool +PDFtoImage.RenderOptions.WithFormFill.init -> void +PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate0 = 0 -> PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate180 = 2 -> PDFtoImage.PdfRotation @@ -61,9 +47,71 @@ PDFtoImage.Exceptions.PdfUnknownException PDFtoImage.Exceptions.PdfUnknownException.PdfUnknownException() -> void PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException.PdfUnsupportedSecuritySchemeException() -> void -PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing \ No newline at end of file +PDFtoImage.Compatibility.Conversion +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +PDFtoImage.Conversion +static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> int +static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen = false, int page = 0, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! \ No newline at end of file diff --git a/src/PDFtoImage/PublicAPI/net8.0-android/PublicAPI.Shipped.txt b/src/PDFtoImage/PublicAPI/net8.0-android/PublicAPI.Shipped.txt index d09ba1b3..9a4f382a 100644 --- a/src/PDFtoImage/PublicAPI/net8.0-android/PublicAPI.Shipped.txt +++ b/src/PDFtoImage/PublicAPI/net8.0-android/PublicAPI.Shipped.txt @@ -1,49 +1,33 @@ #nullable enable -PDFtoImage.Conversion -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -PDFtoImage.Resource -PDFtoImage.Resource.Resource() -> void -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +PDFtoImage.RenderOptions +PDFtoImage.RenderOptions.AntiAliasing.get -> PDFtoImage.PdfAntiAliasing +PDFtoImage.RenderOptions.AntiAliasing.init -> void +PDFtoImage.RenderOptions.BackgroundColor.get -> SkiaSharp.SKColor? +PDFtoImage.RenderOptions.BackgroundColor.init -> void +PDFtoImage.RenderOptions.Bounds.get -> System.Drawing.RectangleF? +PDFtoImage.RenderOptions.Bounds.init -> void +PDFtoImage.RenderOptions.Dpi.get -> int +PDFtoImage.RenderOptions.Dpi.init -> void +PDFtoImage.RenderOptions.Height.get -> int? +PDFtoImage.RenderOptions.Height.init -> void +PDFtoImage.RenderOptions.RenderOptions() -> void +PDFtoImage.RenderOptions.RenderOptions(int Dpi = 300, int? Width = null, int? Height = null, bool WithAnnotations = false, bool WithFormFill = false, bool WithAspectRatio = false, PDFtoImage.PdfRotation Rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing AntiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? BackgroundColor = null, System.Drawing.RectangleF? Bounds = null) -> void +PDFtoImage.RenderOptions.Rotation.get -> PDFtoImage.PdfRotation +PDFtoImage.RenderOptions.Rotation.init -> void +PDFtoImage.RenderOptions.Width.get -> int? +PDFtoImage.RenderOptions.Width.init -> void +PDFtoImage.RenderOptions.WithAnnotations.get -> bool +PDFtoImage.RenderOptions.WithAnnotations.init -> void +PDFtoImage.RenderOptions.WithAspectRatio.get -> bool +PDFtoImage.RenderOptions.WithAspectRatio.init -> void +PDFtoImage.RenderOptions.WithFormFill.get -> bool +PDFtoImage.RenderOptions.WithFormFill.init -> void +PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate0 = 0 -> PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate180 = 2 -> PDFtoImage.PdfRotation @@ -63,9 +47,71 @@ PDFtoImage.Exceptions.PdfUnknownException PDFtoImage.Exceptions.PdfUnknownException.PdfUnknownException() -> void PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException.PdfUnsupportedSecuritySchemeException() -> void -PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing \ No newline at end of file +PDFtoImage.Compatibility.Conversion +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +PDFtoImage.Conversion +static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> int +static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen = false, int page = 0, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! \ No newline at end of file diff --git a/src/PDFtoImage/PublicAPI/net8.0/PublicAPI.Shipped.txt b/src/PDFtoImage/PublicAPI/net8.0/PublicAPI.Shipped.txt index 80946a18..9a4f382a 100644 --- a/src/PDFtoImage/PublicAPI/net8.0/PublicAPI.Shipped.txt +++ b/src/PDFtoImage/PublicAPI/net8.0/PublicAPI.Shipped.txt @@ -1,47 +1,33 @@ #nullable enable -PDFtoImage.Conversion -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +PDFtoImage.RenderOptions +PDFtoImage.RenderOptions.AntiAliasing.get -> PDFtoImage.PdfAntiAliasing +PDFtoImage.RenderOptions.AntiAliasing.init -> void +PDFtoImage.RenderOptions.BackgroundColor.get -> SkiaSharp.SKColor? +PDFtoImage.RenderOptions.BackgroundColor.init -> void +PDFtoImage.RenderOptions.Bounds.get -> System.Drawing.RectangleF? +PDFtoImage.RenderOptions.Bounds.init -> void +PDFtoImage.RenderOptions.Dpi.get -> int +PDFtoImage.RenderOptions.Dpi.init -> void +PDFtoImage.RenderOptions.Height.get -> int? +PDFtoImage.RenderOptions.Height.init -> void +PDFtoImage.RenderOptions.RenderOptions() -> void +PDFtoImage.RenderOptions.RenderOptions(int Dpi = 300, int? Width = null, int? Height = null, bool WithAnnotations = false, bool WithFormFill = false, bool WithAspectRatio = false, PDFtoImage.PdfRotation Rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing AntiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? BackgroundColor = null, System.Drawing.RectangleF? Bounds = null) -> void +PDFtoImage.RenderOptions.Rotation.get -> PDFtoImage.PdfRotation +PDFtoImage.RenderOptions.Rotation.init -> void +PDFtoImage.RenderOptions.Width.get -> int? +PDFtoImage.RenderOptions.Width.init -> void +PDFtoImage.RenderOptions.WithAnnotations.get -> bool +PDFtoImage.RenderOptions.WithAnnotations.init -> void +PDFtoImage.RenderOptions.WithAspectRatio.get -> bool +PDFtoImage.RenderOptions.WithAspectRatio.init -> void +PDFtoImage.RenderOptions.WithFormFill.get -> bool +PDFtoImage.RenderOptions.WithFormFill.init -> void +PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate0 = 0 -> PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate180 = 2 -> PDFtoImage.PdfRotation @@ -61,9 +47,71 @@ PDFtoImage.Exceptions.PdfUnknownException PDFtoImage.Exceptions.PdfUnknownException.PdfUnknownException() -> void PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException.PdfUnsupportedSecuritySchemeException() -> void -PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing \ No newline at end of file +PDFtoImage.Compatibility.Conversion +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +PDFtoImage.Conversion +static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> int +static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen = false, int page = 0, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! +static PDFtoImage.Conversion.ToImagesAsync(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions), System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Collections.Generic.IAsyncEnumerable! \ No newline at end of file diff --git a/src/PDFtoImage/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/src/PDFtoImage/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt index 22f77390..932f121b 100644 --- a/src/PDFtoImage/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt +++ b/src/PDFtoImage/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt @@ -1,43 +1,33 @@ #nullable enable -PDFtoImage.Conversion -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void -static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! -static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> int -static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen, int page, string? password = null) -> System.Drawing.SizeF -static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null) -> System.Collections.Generic.IList! -static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! -static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +PDFtoImage.RenderOptions +PDFtoImage.RenderOptions.AntiAliasing.get -> PDFtoImage.PdfAntiAliasing +PDFtoImage.RenderOptions.AntiAliasing.init -> void +PDFtoImage.RenderOptions.BackgroundColor.get -> SkiaSharp.SKColor? +PDFtoImage.RenderOptions.BackgroundColor.init -> void +PDFtoImage.RenderOptions.Bounds.get -> System.Drawing.RectangleF? +PDFtoImage.RenderOptions.Bounds.init -> void +PDFtoImage.RenderOptions.Dpi.get -> int +PDFtoImage.RenderOptions.Dpi.init -> void +PDFtoImage.RenderOptions.Height.get -> int? +PDFtoImage.RenderOptions.Height.init -> void +PDFtoImage.RenderOptions.RenderOptions() -> void +PDFtoImage.RenderOptions.RenderOptions(int Dpi = 300, int? Width = null, int? Height = null, bool WithAnnotations = false, bool WithFormFill = false, bool WithAspectRatio = false, PDFtoImage.PdfRotation Rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing AntiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? BackgroundColor = null, System.Drawing.RectangleF? Bounds = null) -> void +PDFtoImage.RenderOptions.Rotation.get -> PDFtoImage.PdfRotation +PDFtoImage.RenderOptions.Rotation.init -> void +PDFtoImage.RenderOptions.Width.get -> int? +PDFtoImage.RenderOptions.Width.init -> void +PDFtoImage.RenderOptions.WithAnnotations.get -> bool +PDFtoImage.RenderOptions.WithAnnotations.init -> void +PDFtoImage.RenderOptions.WithAspectRatio.get -> bool +PDFtoImage.RenderOptions.WithAspectRatio.init -> void +PDFtoImage.RenderOptions.WithFormFill.get -> bool +PDFtoImage.RenderOptions.WithFormFill.init -> void +PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing +PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate0 = 0 -> PDFtoImage.PdfRotation PDFtoImage.PdfRotation.Rotate180 = 2 -> PDFtoImage.PdfRotation @@ -57,9 +47,64 @@ PDFtoImage.Exceptions.PdfUnknownException PDFtoImage.Exceptions.PdfUnknownException.PdfUnknownException() -> void PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException PDFtoImage.Exceptions.PdfUnsupportedSecuritySchemeException.PdfUnsupportedSecuritySchemeException() -> void -PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.None = 0 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Text = 1 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Images = 2 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.Paths = 4 -> PDFtoImage.PdfAntiAliasing -PDFtoImage.PdfAntiAliasing.All = PDFtoImage.PdfAntiAliasing.Text | PDFtoImage.PdfAntiAliasing.Images | PDFtoImage.PdfAntiAliasing.Paths -> PDFtoImage.PdfAntiAliasing \ No newline at end of file +PDFtoImage.Compatibility.Conversion +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> void +static PDFtoImage.Compatibility.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImage(System.IO.Stream! pdfStream, string? password = null, int page = 0, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> SkiaSharp.SKBitmap! +static PDFtoImage.Compatibility.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(string! pdfAsBase64String, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Compatibility.Conversion.ToImages(System.IO.Stream! pdfStream, string? password = null, int dpi = 300, int? width = null, int? height = null, bool withAnnotations = false, bool withFormFill = false, bool withAspectRatio = false, PDFtoImage.PdfRotation rotation = PDFtoImage.PdfRotation.Rotate0, PDFtoImage.PdfAntiAliasing antiAliasing = PDFtoImage.PdfAntiAliasing.All, SkiaSharp.SKColor? backgroundColor = null) -> System.Collections.Generic.IEnumerable! +PDFtoImage.Conversion +static PDFtoImage.Conversion.GetPageCount(byte[]! pdfAsByteArray, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(string! pdfAsBase64String, string? password = null) -> int +static PDFtoImage.Conversion.GetPageCount(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> int +static PDFtoImage.Conversion.GetPageSize(byte[]! pdfAsByteArray, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(string! pdfAsBase64String, int page, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSize(System.IO.Stream! pdfStream, bool leaveOpen = false, int page = 0, string? password = null) -> System.Drawing.SizeF +static PDFtoImage.Conversion.GetPageSizes(byte[]! pdfAsByteArray, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(string! pdfAsBase64String, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.GetPageSizes(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null) -> System.Collections.Generic.IList! +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveJpeg(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SavePng(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(string! imageFilename, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.SaveWebp(System.IO.Stream! imageStream, System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> void +static PDFtoImage.Conversion.ToImage(byte[]! pdfAsByteArray, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(string! pdfAsBase64String, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImage(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, int page = 0, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> SkiaSharp.SKBitmap! +static PDFtoImage.Conversion.ToImages(byte[]! pdfAsByteArray, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(string! pdfAsBase64String, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! +static PDFtoImage.Conversion.ToImages(System.IO.Stream! pdfStream, bool leaveOpen = false, string? password = null, PDFtoImage.RenderOptions options = default(PDFtoImage.RenderOptions)) -> System.Collections.Generic.IEnumerable! \ No newline at end of file diff --git a/src/PDFtoImage/RenderOptions.cs b/src/PDFtoImage/RenderOptions.cs new file mode 100644 index 00000000..19480a86 --- /dev/null +++ b/src/PDFtoImage/RenderOptions.cs @@ -0,0 +1,42 @@ +using SkiaSharp; +using System.Drawing; + +namespace PDFtoImage +{ + /// + /// Contains all relevant information to render a PDF page into an image. + /// + /// The DPI scaling to use for rasterization of the PDF. + /// The width of the desired page. Use if the original width should be used. + /// The height of the desired page. Use if the original height should be used. + /// Specifies whether annotations be rendered. + /// Specifies whether form filling will be rendered. + /// Specifies that or should be adjusted for aspect ratio (either one must be ). + /// Specifies the rotation at 90 degree intervals. + /// Specifies which parts of the PDF should be anti-aliasing for rendering. + /// Specifies the background color. Defaults to . + /// Specifies the bounds for the page relative to . This can be used for clipping (bounds inside of page) or additional margins (bounds outside of page). + public readonly record struct RenderOptions( + int Dpi = 300, + int? Width = null, + int? Height = null, + bool WithAnnotations = false, + bool WithFormFill = false, + bool WithAspectRatio = false, + PdfRotation Rotation = PdfRotation.Rotate0, + PdfAntiAliasing AntiAliasing = PdfAntiAliasing.All, + SKColor? BackgroundColor = null, + RectangleF? Bounds = null) + { + /// + /// Constructs with default values. + /// + public RenderOptions() : this(300, null, null, false, false, false, PdfRotation.Rotate0, PdfAntiAliasing.All, null, null) { } + } +} +#if NETSTANDARD || MONOANDROID || NETFRAMEWORK +namespace System.Runtime.CompilerServices +{ + internal static class IsExternalInit { } +} +#endif \ No newline at end of file diff --git a/src/Tests/AntiAliasingTests.cs b/src/Tests/AntiAliasingTests.cs index 9bf120ce..57227f53 100644 --- a/src/Tests/AntiAliasingTests.cs +++ b/src/Tests/AntiAliasingTests.cs @@ -39,9 +39,9 @@ public void SaveJpegWithAntiAliasing(PdfAntiAliasing? antiAliasing) using var outputStream = CreateOutputStream(expectedPath); if (antiAliasing == null) - SaveJpeg(outputStream, inputStream, dpi: 40); + SaveJpeg(outputStream, inputStream, options: new(Dpi: 40)); else - SaveJpeg(outputStream, inputStream, dpi: 40, antiAliasing: antiAliasing.Value); + SaveJpeg(outputStream, inputStream, options: new(Dpi: 40, AntiAliasing: antiAliasing.Value)); CompareStreams(expectedPath, outputStream); } @@ -65,9 +65,9 @@ public void SavePngWithAntiAliasing(PdfAntiAliasing? antiAliasing) using var outputStream = CreateOutputStream(expectedPath); if (antiAliasing == null) - SavePng(outputStream, inputStream, dpi: 40); + SavePng(outputStream, inputStream, options: new(Dpi: 40)); else - SavePng(outputStream, inputStream, dpi: 40, antiAliasing: antiAliasing.Value); + SavePng(outputStream, inputStream, options: new(Dpi: 40, AntiAliasing: antiAliasing.Value)); CompareStreams(expectedPath, outputStream); } @@ -91,9 +91,9 @@ public void SaveWebpWithAntiAliasing(PdfAntiAliasing? antiAliasing) using var outputStream = CreateOutputStream(expectedPath); if (antiAliasing == null) - SaveWebp(outputStream, inputStream, dpi: 40); + SaveWebp(outputStream, inputStream, options: new(Dpi: 40)); else - SaveWebp(outputStream, inputStream, dpi: 40, antiAliasing: antiAliasing.Value); + SaveWebp(outputStream, inputStream, options: new(Dpi: 40, AntiAliasing: antiAliasing.Value)); CompareStreams(expectedPath, outputStream); } diff --git a/src/Tests/ApiTests.cs b/src/Tests/ApiTests.cs index 31efa806..48b5ef28 100644 --- a/src/Tests/ApiTests.cs +++ b/src/Tests/ApiTests.cs @@ -99,7 +99,7 @@ public void GetPageSizePdfArrayNullException() [TestMethod] public void GetPageSizePdfStreamNullException() { - Assert.ThrowsException(() => GetPageSize((Stream)null!, 0)); + Assert.ThrowsException(() => GetPageSize((Stream)null!, page:0)); } [TestMethod] @@ -319,7 +319,7 @@ public void GetPageSizeStreamLeaveOpenDefault() using var inputStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); Assert.IsTrue(inputStream.CanRead); - GetPageSize(inputStream, 0); + GetPageSize(inputStream, page: 0); Assert.IsFalse(inputStream.CanRead, "The stream should be closed when calling the default overload."); } diff --git a/src/Tests/AspectRatioTests.cs b/src/Tests/AspectRatioTests.cs index 095f78b9..d581b83d 100644 --- a/src/Tests/AspectRatioTests.cs +++ b/src/Tests/AspectRatioTests.cs @@ -140,9 +140,9 @@ public void WithoutAspectRatio(string fileName, int? width = null, int? height = using var outputStream = CreateOutputStream(expectedPath); if (dpi != null) - SaveJpeg(outputStream, inputStream, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: false, dpi: dpi.Value); + SaveJpeg(outputStream, inputStream, options: new (Width: width, Height: height, WithAnnotations: true, WithFormFill: true, WithAspectRatio: false, Dpi: dpi.Value)); else - SaveJpeg(outputStream, inputStream, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: false); + SaveJpeg(outputStream, inputStream, options: new(Width: width, Height: height, WithAnnotations: true, WithFormFill: true, WithAspectRatio: false)); CompareStreams(expectedPath, outputStream); } @@ -278,9 +278,9 @@ public void WithAspectRatio(string fileName, int? width = null, int? height = nu using var outputStream = CreateOutputStream(expectedPath); if (dpi != null) - SaveJpeg(outputStream, inputStream, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: true, dpi: dpi.Value); + SaveJpeg(outputStream, inputStream, options: new(Width: width, Height: height, WithAnnotations: true, WithFormFill: true, WithAspectRatio: true, Dpi: dpi.Value)); else - SaveJpeg(outputStream, inputStream, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: true); + SaveJpeg(outputStream, inputStream, options: new(Width: width, Height: height, WithAnnotations: true, WithFormFill: true, WithAspectRatio: true)); CompareStreams(expectedPath, outputStream); } @@ -352,7 +352,7 @@ public void IgnoreDpi(string fileName, int? width = null, int? height = null, bo { using var outputStream = CreateOutputStream(expectedPath); - ToImage(inputStream, true, dpi: i, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: withAspectRatio).Encode(outputStream, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); + ToImage(inputStream, true, options: new(Dpi: i, Width: width, Height: height, WithAnnotations: true, WithFormFill: true, WithAspectRatio: withAspectRatio)).Encode(outputStream, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); CompareStreams(expectedPath, outputStream); } } @@ -375,8 +375,8 @@ public void IgnoreAspectRatio(string fileName, int width, int height) using var outputStream1 = CreateOutputStream(expectedPath); using var outputStream2 = CreateOutputStream(expectedPath); - ToImage(inputStream, true, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: false).Encode(outputStream1, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); - ToImage(inputStream, true, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: true).Encode(outputStream2, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); + ToImage(inputStream, true, options: new(Width: width, Height: height, WithAnnotations: true, WithFormFill: true, WithAspectRatio: false)).Encode(outputStream1, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); + ToImage(inputStream, true, options: new(Width: width, Height: height, WithAnnotations: true, WithFormFill: true, WithAspectRatio: true)).Encode(outputStream2, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); CompareStreams(expectedPath, outputStream1); CompareStreams(expectedPath, outputStream2); @@ -400,8 +400,8 @@ public void IgnoreAspectRatioWithDpi(string fileName, int dpi) using var outputStream1 = CreateOutputStream(expectedPath); using var outputStream2 = CreateOutputStream(expectedPath); - ToImage(inputStream, true, dpi: dpi, withAnnotations: true, withFormFill: true, withAspectRatio: false).Encode(outputStream1, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); - ToImage(inputStream, true, dpi: dpi, withAnnotations: true, withFormFill: true, withAspectRatio: true).Encode(outputStream2, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); + ToImage(inputStream, true, options: new(Dpi: dpi, WithAnnotations: true, WithFormFill: true, WithAspectRatio: false)).Encode(outputStream1, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); + ToImage(inputStream, true, options: new(Dpi: dpi, WithAnnotations: true, WithFormFill: true, WithAspectRatio: true)).Encode(outputStream2, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); CompareStreams(expectedPath, outputStream1); CompareStreams(expectedPath, outputStream2); diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg index e3d8d437..568950b4 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png index 615acb87..f82be6a5 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp index f1d8682e..f585b76d 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg index 263e065d..fff697d3 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png index 9a24e034..f17341bf 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp index 25ebbdc7..b35634fc 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg index e3d8d437..568950b4 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png index 615acb87..f82be6a5 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp index f1d8682e..f585b76d 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg index 263e065d..fff697d3 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png index 9a24e034..f17341bf 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp index 25ebbdc7..b35634fc 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg index 41ced242..acd68f9c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png index b70ca280..0bed74c6 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp index 0cb79aca..b123a5b4 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg index 41ced242..acd68f9c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png index b70ca280..0bed74c6 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp index 0cb79aca..b123a5b4 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg index f4599202..18ec1b74 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png index 45c90883..7537552f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp index 2c27dbec..ec1df5da 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg index f4599202..18ec1b74 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png index 45c90883..7537552f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png differ diff --git a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp index 2c27dbec..ec1df5da 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp and b/src/Tests/Assets/Expected/LINUX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg index 8c011a4c..faeb2588 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg index 8c011a4c..faeb2588 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg index 9e77edc1..ccabe46f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg index 9e77edc1..ccabe46f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg index 2901a587..89913c2c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg index 2901a587..89913c2c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg index bfeec53a..51c91638 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg index bfeec53a..51c91638 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg index ad59bc52..5c8b666c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg index ad59bc52..5c8b666c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg index ad59bc52..5c8b666c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg index ad59bc52..5c8b666c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg index dd54781b..26b4c9f0 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg index dd54781b..26b4c9f0 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg index dd54781b..26b4c9f0 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg index dd54781b..26b4c9f0 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg index 9eda6f29..c3aca002 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg index 9eda6f29..c3aca002 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg index 9eda6f29..c3aca002 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg index 9eda6f29..c3aca002 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg index c9a73e24..b71b15ec 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg index c9a73e24..b71b15ec 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg index 10de5fdf..dc9cff21 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg index 10de5fdf..dc9cff21 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg index 37acc681..c97a2da1 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg index 37acc681..c97a2da1 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg index c9a73e24..b71b15ec 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg index c9a73e24..b71b15ec 100644 Binary files a/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg and b/src/Tests/Assets/Expected/LINUX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg index 58a803e1..21ef310f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png index a1e731fe..5f5bed02 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp index b56dd530..bd633d4f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg index 75edfab4..6d230ee3 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.png index b4c3d727..7e0cf624 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.webp index 8e95eb73..dcecc7dd 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64000000.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg index 1a2159d2..08cdc74c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.png index f9219ca9..bd22c08f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp index f11a7953..33d1c93a 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg index 76fc9a82..bb0b0b0c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png index 624a4a61..4ec9803f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp index b7b67f0f..8d4c0025 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg index 5fd209ef..01585c3f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png index f7c0b581..204e9825 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp index d0b4f887..8c770901 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg index c376497d..098ca974 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png index bb4a7aa7..911ef39f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp index facfdd20..eba747d1 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg index 124a1143..d4483e03 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png index 4e2ca57b..64d1d9e3 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp index 9b14fbd4..23d3e441 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg index 8b77a5d8..2362cdd8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png index 46bf022e..d4eae6f4 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp index d52b7689..060f5980 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg index e96ecf0b..d3a7d80d 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png index a9f0a2ec..6df0b398 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp index 4f2dd6a5..458c3451 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg index bfd1b4a8..06372823 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.png index 873fa040..9639bfff 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp index 6b7d424a..1a6d43d7 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg index fc5d7d47..5da75657 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png index 3cb28cc0..b2d40921 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp index eb4d6079..555a5551 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg index ae7b9e3f..c18ef570 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png index 4e1171c9..94ce1cd1 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp index efa8ac32..67c48a60 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg index c5f006ec..1eb9a365 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png index 4781de89..38900379 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp index 2b41c212..21493d7c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg index e61f62c4..11e565a4 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png index d334e19f..abcd571c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp index 75f0cd4d..7a9e50d9 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg index 3aad0a8a..b16f9a07 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png index f74f71ce..bbd04236 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp index bff34e6b..1de24f28 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg index 617aa6a9..7fe77e71 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png index 3e9677c8..f71a1a30 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp index 166b2bdf..274baf8d 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg index f4599202..18ec1b74 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png index 45c90883..7537552f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png differ diff --git a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp index 2c27dbec..ec1df5da 100644 Binary files a/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp and b/src/Tests/Assets/Expected/LINUX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-200-200.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-200-200.png new file mode 100644 index 00000000..5a29020f Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-200-200.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638.png new file mode 100644 index 00000000..e10965cb Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_500x500.png new file mode 100644 index 00000000..3063480d Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..c25bd170 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..1beedf25 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..d5131796 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_annot.png new file mode 100644 index 00000000..4dd73bd2 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..e10965cb Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-595,276.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-595,276.png new file mode 100644 index 00000000..01842b03 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-209,76399-595,276.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-297,638.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-297,638.png new file mode 100644 index 00000000..bc762d64 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-297,638.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276.png new file mode 100644 index 00000000..124566ba Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_500x500.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_500x500.png new file mode 100644 index 00000000..aa912cd3 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_500x500.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate180.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate180.png new file mode 100644 index 00000000..52e60eeb Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate270.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate270.png new file mode 100644 index 00000000..8d0324b4 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate90.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate90.png new file mode 100644 index 00000000..4f0d5c2f Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_annot.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_annot.png new file mode 100644 index 00000000..8c96d2bf Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_annot.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_nullxnull.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_nullxnull.png new file mode 100644 index 00000000..124566ba Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638.png new file mode 100644 index 00000000..9acbfebb Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_500x500.png new file mode 100644 index 00000000..9fd7b6e2 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..7ba82e04 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..506aad5c Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..b5b7be9e Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_annot.png new file mode 100644 index 00000000..b28251b0 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..9acbfebb Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-395,276-200-200.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-395,276-200-200.png new file mode 100644 index 00000000..bb66cefb Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_0-395,276-200-200.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638.png new file mode 100644 index 00000000..18bfb309 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_500x500.png new file mode 100644 index 00000000..80dc4d69 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..370ab3b0 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..e40b386c Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..481d21ca Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_annot.png new file mode 100644 index 00000000..fc871364 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..18bfb309 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638.png new file mode 100644 index 00000000..cf3fc239 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_500x500.png new file mode 100644 index 00000000..26aa1536 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..7a84cfee Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..b122306a Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..534824f0 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_annot.png new file mode 100644 index 00000000..58daafd1 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..cf3fc239 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_219,52798-0-200-200.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_219,52798-0-200-200.png new file mode 100644 index 00000000..e08bb4bb Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_219,52798-0-200-200.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_219,52798-395,276-200-200.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_219,52798-395,276-200-200.png new file mode 100644 index 00000000..3b0b03da Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_219,52798-395,276-200-200.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_default.png b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_default.png new file mode 100644 index 00000000..124566ba Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/Wikimedia_Commons_web_default.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02.png b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02.png new file mode 100644 index 00000000..c312ee14 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02_form.png b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02_form.png new file mode 100644 index 00000000..ae4cfcb7 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04.png b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04.png new file mode 100644 index 00000000..b8b29219 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04_form.png b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04_form.png new file mode 100644 index 00000000..f6ae6147 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04_form.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02.png b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02.png new file mode 100644 index 00000000..c2706bb1 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02_form.png b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02_form.png new file mode 100644 index 00000000..6f40b8c6 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02.png b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02.png new file mode 100644 index 00000000..5efca529 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02_form.png b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02_form.png new file mode 100644 index 00000000..56593ec9 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02.png b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02.png new file mode 100644 index 00000000..55e5b199 Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02_form.png b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02_form.png new file mode 100644 index 00000000..3768770e Binary files /dev/null and b/src/Tests/Assets/Expected/LINUX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.jpg b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.jpg index f4599202..18ec1b74 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.jpg and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.png index 45c90883..7537552f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.webp b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.webp index 2c27dbec..ec1df5da 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.webp and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png index 0fb03a2f..ca9f2fc6 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png index 45c90883..7537552f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png index 45c90883..7537552f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.jpg b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.jpg index 51e31577..27e9af11 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.jpg and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.png index acfc92e0..56b2aebc 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.webp b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.webp index 48ba4720..87b6667e 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.webp and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png index 3d362e92..c238d051 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png index acfc92e0..56b2aebc 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png index acfc92e0..56b2aebc 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.jpg b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.jpg index 27a93ff2..f13466f7 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.jpg and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.png index ecb9f85b..9c557bff 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.webp b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.webp index 4894ab53..48b094ce 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.webp and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png index ecb9f85b..9c557bff 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png index ecb9f85b..9c557bff 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.jpg b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.jpg index cb998753..16a491f8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.jpg and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.png index 14d0a196..4e804d68 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.webp b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.webp index 28a3b2e5..968eac80 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.webp and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png index 8f772f64..b3767883 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png index 14d0a196..4e804d68 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png index 14d0a196..4e804d68 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png and b/src/Tests/Assets/Expected/LINUX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.jpg index 73a03c41..74220549 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.png index 778778b7..cf69638f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.webp index 47ff6c1b..dc4ff83e 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.jpg index caf5e6c3..df3fd0fa 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.png index 9fa5fda6..43179d68 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.webp index 4843df19..8eadcebb 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_0_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.jpg index 4a9905ca..1970454c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.png index d69dc362..6eaaf86b 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.webp index b9c832e8..6791e884 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.jpg index b3d3f695..24f2c50b 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.png index 7d99998e..9a969b5a 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.webp index 47bafd92..31e1f0ae 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.jpg index a21c8a9e..2ee013d7 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.png index d2534f76..b3c595f2 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.webp index 4df157fa..e891c1ab 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_10_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.jpg index a0294398..da35f2cb 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.png index 8702d244..993fc8f1 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.webp index 4e6ea628..c187bc85 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.jpg index 7a9dd327..3fd8203c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.png index 15e692b5..945370d9 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.webp index 89190995..497cfdbc 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_11_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.jpg index 1fb94e15..b0c1f923 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.png index b82aa688..7d5cbc71 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.webp index bbab9904..93962cd8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.jpg index e6ba2b62..1bbbfa11 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.png index 83868622..bb743967 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.webp index 12be227d..3f6e32fb 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_12_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.jpg index 0ba831ea..6af028a6 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.png index dfb61295..da2c299b 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.webp index a464d30d..6f2cbe00 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.jpg index 1b9c025a..05a385ee 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.png index cbc8643e..5a925ac8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.webp index 6770f609..49d9bcf1 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_13_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.jpg index dd0d4f02..b66608f3 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.png index 0b42fa76..4de74765 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.webp index 1c25f0dd..9cfab7b7 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.jpg index c4aa3a95..eb2386cb 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.png index 2b2def02..a38d1275 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.webp index 03cb2c12..1e3b6582 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_14_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.jpg index 1e52f0d4..04df3131 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.png index 5da55aa5..42696b15 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.webp index 52a8fc01..9324f88f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.jpg index cdf132d1..8ae2d817 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.png index 554a8832..c9cf892c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.webp index b8e68e83..dc99e3a6 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_15_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.jpg index ecbceac7..61b79cfe 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.png index 3d63ee8d..812504a0 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.webp index 08bc36fb..87e7350c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.jpg index d51a2d3b..f1574e5c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.png index 92141ad7..727bd022 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.webp index 3162fc1f..63b02300 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_16_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.jpg index 3eeb95b9..1415b932 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.png index d4387c2f..e41dcf0b 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.webp index 1dcf96c4..4fe9743c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.jpg index 5c4118d7..253e9426 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.png index 5b5e899c..1190d19b 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.webp index 87707b40..34a88016 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_17_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.jpg index 14ad35fb..dd3ee466 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.png index 8c8399fc..4e85fbd7 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.webp index 7a38e736..71dbb561 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.jpg index 24586929..1a1bda97 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.png index 737b7745..956d063f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.webp index 2bc508e3..a8ee606e 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_18_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.jpg index 6b675b14..92ec0b72 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.png index 8c4880fe..72109a16 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.webp index 34bf5acb..753454af 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.jpg index f80c4132..a75fb813 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.png index 7aab8be3..b47b63a3 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.webp index bbca8163..32e8e180 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_19_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.jpg index 0bb91298..6a0c3763 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.png index 83d03a9d..a3a00208 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.webp index 0452c23f..0481824b 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_1_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.jpg index f1d48ea1..bb3f1e5c 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.png index b60c66eb..8e8a2852 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.webp index dfd2f0b2..37ff9cd0 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.jpg index 87711067..d819fcf8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.png index 16446cc8..3a2a7349 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.webp index da88e380..6c19f103 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_2_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.jpg index 326fb6a8..f7632f08 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.png index 4cb00322..eb621305 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.webp index d5231880..3e361845 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.jpg index abf46b80..e7163b76 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.png index 10fe44e4..f35f90db 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.webp index 61ce6b31..94d6fbc4 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_3_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.jpg index d50d51b8..7c108012 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.png index 32696865..d19c11a7 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.webp index 2a6df3c0..c82067fa 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.jpg index 0f2cde92..40bed71a 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.png index f97bd6f0..0070a331 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.webp index fcd9e8d6..bdd33c2a 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_4_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.jpg index 749ce8ca..677911d8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.png index 202c7d29..89fa5b67 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.webp index 36962266..fa9bf6c8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.jpg index 78e63972..d1edb824 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.png index d4525aa5..f8916e91 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.webp index 42204187..e4593aad 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_5_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.jpg index abd799e1..01beeb42 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.png index ed22298b..d30497f1 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.webp index b328c8b5..8f5bb5c2 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.jpg index daed354a..2f66c553 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.png index 88ea7d2d..265cc662 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.webp index 15883100..3d1522bc 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_6_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.jpg index b66ee1b4..9a789b89 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.png index b6fe4ccd..0c9489d0 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.webp index 132dbf71..51fe54ed 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.jpg index 6398c822..4fcdd7c1 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.png index 3f7137c7..73ecf9a5 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.webp index fd11bdf7..d432c57a 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_7_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.jpg index 89dc7a1f..0f8e6886 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.png index 1f3b977b..c732c19a 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.webp index aadfdac7..2dc1139a 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.jpg index 55dc02c3..b06f1b31 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.png index d0051852..cafc6659 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.webp index ae977146..eedb3474 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_8_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.jpg index 4e68290d..12d44ffb 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.png index 3db4161a..c2323f79 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.webp index 9a2849d9..c02fe1d3 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.jpg b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.jpg index b9a24fa7..aa6a6e54 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.jpg and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.png b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.png index 01820aa7..7a79eaa9 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.png and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.webp b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.webp index 3842bc4c..dee28ccc 100644 Binary files a/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.webp and b/src/Tests/Assets/Expected/LINUX/Wikimedia_Commons_web_9_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.jpg b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.jpg index f4599202..18ec1b74 100644 Binary files a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.jpg and b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.png b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.png index 45c90883..7537552f 100644 Binary files a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.png and b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.png differ diff --git a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.webp b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.webp index 2c27dbec..ec1df5da 100644 Binary files a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.webp and b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_False.webp differ diff --git a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.jpg b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.jpg index 78daeb4b..d2b7372d 100644 Binary files a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.jpg and b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.jpg differ diff --git a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.png b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.png index a49afc13..a1c2de52 100644 Binary files a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.png and b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.png differ diff --git a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.webp b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.webp index 19f79a2b..a76f60f8 100644 Binary files a/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.webp and b/src/Tests/Assets/Expected/LINUX/hundesteuer-anmeldung_True.webp differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg index ded609ef..70dd1630 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png index d367ba95..916220e7 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp index da0e5344..21b3d384 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg index 01cc55ea..e105c723 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png index 02b8f326..ebedc55a 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp index 895957ef..989f010d 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg index ded609ef..70dd1630 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png index d367ba95..916220e7 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp index da0e5344..21b3d384 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg index 01cc55ea..e105c723 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png index 02b8f326..ebedc55a 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp index 895957ef..989f010d 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg index fdf77b5f..e21f9ebd 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png index 9d635193..2018db8e 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp index 724d4ee0..dd5140c0 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg index fdf77b5f..e21f9ebd 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png index 9d635193..2018db8e 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp index 724d4ee0..dd5140c0 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg index fde84014..4cc7a43c 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png index 93ed5baa..cdd8fee9 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp index db929d24..8ea5d6de 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg index fde84014..4cc7a43c 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png index 93ed5baa..cdd8fee9 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png differ diff --git a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp index db929d24..8ea5d6de 100644 Binary files a/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp and b/src/Tests/Assets/Expected/OSX/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg index 8c011a4c..faeb2588 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg index 8c011a4c..faeb2588 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg index 9e77edc1..ccabe46f 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg index 9e77edc1..ccabe46f 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg index 2901a587..89913c2c 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg index 2901a587..89913c2c 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg index bfeec53a..51c91638 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg index bfeec53a..51c91638 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg index f5a42a88..6be64389 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg index f5a42a88..6be64389 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg index f5a42a88..6be64389 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg index f5a42a88..6be64389 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg index a1ac857e..dfffe697 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg index a1ac857e..dfffe697 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg index a1ac857e..dfffe697 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg index a1ac857e..dfffe697 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg index b2005c4a..3f10afce 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg index b2005c4a..3f10afce 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg index b2005c4a..3f10afce 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg index b2005c4a..3f10afce 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg index dd297124..c2b22256 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg index dd297124..c2b22256 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg index d00a559d..488d0787 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg index d00a559d..488d0787 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg index edd2c40a..6cdf63bb 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg index edd2c40a..6cdf63bb 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg index dd297124..c2b22256 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg index dd297124..c2b22256 100644 Binary files a/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg and b/src/Tests/Assets/Expected/OSX/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg index 684cefaf..c5b51c02 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png index 46c99ce4..6b82cb45 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp index 436b8ecd..e218d853 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg index 1d296a87..64b0bafb 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.png index c8157b7f..228b9a4b 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.webp index 5f7f356d..d5d7ac98 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64000000.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg index 1e5d1065..2e8fe26f 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.png index b27270b3..20021208 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp index 166afb96..754d6eac 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg index d0bd9049..19c80110 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png index 8b4fad42..20ffc150 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp index 180a9f2d..f63ac1c2 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg index 8d681de2..65b97fe7 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png index ac592236..194fae40 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp index 1922ccd7..3eff6f04 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg index 7b0624da..d2060130 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png index 087af7f5..46358a87 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp index 4368ea2d..0c731fee 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg index 27de4006..1a5192e6 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png index bc49686f..e5f512bc 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp index 8c7d83fd..549c571e 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg index 31d73fa6..f2c98142 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png index 0a4d55ea..961e0782 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp index bccef38e..b089f611 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg index e8904c3c..5493979b 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png index e8006b25..a3f347a9 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp index 7278a7ef..4df76e3d 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg index 5e1d4c0a..6650eb8a 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.png index 1213df4d..1c89cdbc 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp index 06bf70f6..439ae4d0 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg index 3cde1b62..1c44420e 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png index bffa32e6..d05c1254 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp index 6af20797..b1f76fb2 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg index e6876e55..4d3ee8b9 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png index dff9e95b..54f9d13c 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp index 505f7308..03834f22 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg index b1c98d31..1730fa91 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png index 5536d23d..132f6c91 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp index 4cfce340..804848ae 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg index 8c94294f..f45bfbee 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png index fdc27295..d69f1a73 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp index b612a5bf..b4be81ee 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg index 1963233a..04ec201c 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png index 63ddb045..e5aa8085 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp index ad6e30f3..33b2d72c 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg index cf480422..f69dfee1 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png index eff1bd6e..d904d6f3 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp index fca63af2..1a323449 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg index fde84014..4cc7a43c 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png index 93ed5baa..cdd8fee9 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png differ diff --git a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp index db929d24..8ea5d6de 100644 Binary files a/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp and b/src/Tests/Assets/Expected/OSX/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-200-200.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-200-200.png new file mode 100644 index 00000000..5a29020f Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-200-200.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638.png new file mode 100644 index 00000000..e10965cb Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_500x500.png new file mode 100644 index 00000000..3063480d Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..c25bd170 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..1beedf25 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..d5131796 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_annot.png new file mode 100644 index 00000000..4dd73bd2 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..e10965cb Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-595,276.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-595,276.png new file mode 100644 index 00000000..01842b03 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-209,76399-595,276.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-297,638.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-297,638.png new file mode 100644 index 00000000..bc762d64 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-297,638.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276.png new file mode 100644 index 00000000..124566ba Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_500x500.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_500x500.png new file mode 100644 index 00000000..aa912cd3 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_500x500.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate180.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate180.png new file mode 100644 index 00000000..52e60eeb Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate270.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate270.png new file mode 100644 index 00000000..8d0324b4 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate90.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate90.png new file mode 100644 index 00000000..4f0d5c2f Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_annot.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_annot.png new file mode 100644 index 00000000..8c96d2bf Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_annot.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_nullxnull.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_nullxnull.png new file mode 100644 index 00000000..124566ba Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638.png new file mode 100644 index 00000000..9acbfebb Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_500x500.png new file mode 100644 index 00000000..9fd7b6e2 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..7ba82e04 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..506aad5c Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..b5b7be9e Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_annot.png new file mode 100644 index 00000000..b28251b0 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..9acbfebb Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-395,276-200-200.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-395,276-200-200.png new file mode 100644 index 00000000..bb66cefb Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_0-395,276-200-200.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638.png new file mode 100644 index 00000000..18bfb309 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_500x500.png new file mode 100644 index 00000000..80dc4d69 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..370ab3b0 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..e40b386c Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..481d21ca Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_annot.png new file mode 100644 index 00000000..fc871364 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..18bfb309 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638.png new file mode 100644 index 00000000..cf3fc239 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_500x500.png new file mode 100644 index 00000000..26aa1536 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..7a84cfee Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..b122306a Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..534824f0 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_annot.png new file mode 100644 index 00000000..58daafd1 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..cf3fc239 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_219,52798-0-200-200.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_219,52798-0-200-200.png new file mode 100644 index 00000000..e08bb4bb Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_219,52798-0-200-200.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_219,52798-395,276-200-200.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_219,52798-395,276-200-200.png new file mode 100644 index 00000000..3b0b03da Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_219,52798-395,276-200-200.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_default.png b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_default.png new file mode 100644 index 00000000..124566ba Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/Wikimedia_Commons_web_default.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02.png b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02.png new file mode 100644 index 00000000..abc29e59 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02_form.png b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02_form.png new file mode 100644 index 00000000..23466059 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04.png b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04.png new file mode 100644 index 00000000..db0319a5 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04_form.png b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04_form.png new file mode 100644 index 00000000..887e6961 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04_form.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02.png b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02.png new file mode 100644 index 00000000..9ea9cccf Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02_form.png b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02_form.png new file mode 100644 index 00000000..50c78d13 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02.png b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02.png new file mode 100644 index 00000000..988e8312 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02_form.png b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02_form.png new file mode 100644 index 00000000..856c638c Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02.png b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02.png new file mode 100644 index 00000000..e3c201ce Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02_form.png b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02_form.png new file mode 100644 index 00000000..6ff33f38 Binary files /dev/null and b/src/Tests/Assets/Expected/OSX/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.jpg b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.jpg index fde84014..4cc7a43c 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.jpg and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.png index 93ed5baa..cdd8fee9 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.webp b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.webp index db929d24..8ea5d6de 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.webp and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png index 11ad495a..d586d866 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png index 93ed5baa..cdd8fee9 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png index 93ed5baa..cdd8fee9 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.jpg b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.jpg index cefb9ae4..22a59c30 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.jpg and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.png index 47160a7c..8358f9a7 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.webp b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.webp index 0bece877..f21f0989 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.webp and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png index b222f9bd..aae8f482 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png index 47160a7c..8358f9a7 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png index 47160a7c..8358f9a7 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.jpg b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.jpg index 3e8a2d66..a5ac4ade 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.jpg and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.png index 815c01a2..beaa372e 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.webp b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.webp index fa0b1999..ca1a682b 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.webp and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png index 815c01a2..beaa372e 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png index 815c01a2..beaa372e 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.jpg b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.jpg index 623be302..e88969ae 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.jpg and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.png index a51b7d2b..d2a4f11e 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.webp b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.webp index 4140982f..26f84b71 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.webp and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png index d57eb09a..d28fd4e0 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png index a51b7d2b..d2a4f11e 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png index a51b7d2b..d2a4f11e 100644 Binary files a/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png and b/src/Tests/Assets/Expected/OSX/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.jpg index 73a03c41..74220549 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.png index 778778b7..cf69638f 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.webp index 47ff6c1b..dc4ff83e 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.jpg index caf5e6c3..df3fd0fa 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.png index 9fa5fda6..43179d68 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.webp index 4843df19..8eadcebb 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_0_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.jpg index 4a9905ca..1970454c 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.png index d69dc362..6eaaf86b 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.webp index b9c832e8..6791e884 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.jpg index b3d3f695..24f2c50b 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.png index 7d99998e..9a969b5a 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.webp index 47bafd92..31e1f0ae 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.jpg index a21c8a9e..2ee013d7 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.png index d2534f76..b3c595f2 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.webp index 4df157fa..e891c1ab 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_10_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.jpg index a0294398..da35f2cb 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.png index 8702d244..993fc8f1 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.webp index 4e6ea628..c187bc85 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.jpg index 7a9dd327..3fd8203c 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.png index 15e692b5..945370d9 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.webp index 89190995..497cfdbc 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_11_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.jpg index 1fb94e15..b0c1f923 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.png index b82aa688..7d5cbc71 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.webp index bbab9904..93962cd8 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.jpg index e6ba2b62..1bbbfa11 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.png index 83868622..bb743967 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.webp index 12be227d..3f6e32fb 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_12_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.jpg index 0ba831ea..6af028a6 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.png index dfb61295..da2c299b 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.webp index a464d30d..6f2cbe00 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.jpg index 1b9c025a..05a385ee 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.png index cbc8643e..5a925ac8 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.webp index 6770f609..49d9bcf1 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_13_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.jpg index dd0d4f02..b66608f3 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.png index 0b42fa76..4de74765 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.webp index 1c25f0dd..9cfab7b7 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.jpg index c4aa3a95..eb2386cb 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.png index 2b2def02..a38d1275 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.webp index 03cb2c12..1e3b6582 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_14_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.jpg index 1e52f0d4..04df3131 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.png index 5da55aa5..42696b15 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.webp index 52a8fc01..9324f88f 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.jpg index cdf132d1..8ae2d817 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.png index 554a8832..c9cf892c 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.webp index b8e68e83..dc99e3a6 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_15_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.jpg index ecbceac7..61b79cfe 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.png index 3d63ee8d..812504a0 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.webp index 08bc36fb..87e7350c 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.jpg index d51a2d3b..f1574e5c 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.png index 92141ad7..727bd022 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.webp index 3162fc1f..63b02300 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_16_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.jpg index 3eeb95b9..1415b932 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.png index d4387c2f..e41dcf0b 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.webp index 1dcf96c4..4fe9743c 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.jpg index 5c4118d7..253e9426 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.png index 5b5e899c..1190d19b 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.webp index 87707b40..34a88016 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_17_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.jpg index 14ad35fb..dd3ee466 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.png index 8c8399fc..4e85fbd7 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.webp index 7a38e736..71dbb561 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.jpg index 24586929..1a1bda97 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.png index 737b7745..956d063f 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.webp index 2bc508e3..a8ee606e 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_18_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.jpg index 6b675b14..92ec0b72 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.png index 8c4880fe..72109a16 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.webp index 34bf5acb..753454af 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.jpg index f80c4132..a75fb813 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.png index 7aab8be3..b47b63a3 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.webp index bbca8163..32e8e180 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_19_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.jpg index 0bb91298..6a0c3763 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.png index 83d03a9d..a3a00208 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.webp index 0452c23f..0481824b 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_1_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.jpg index f1d48ea1..bb3f1e5c 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.png index b60c66eb..8e8a2852 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.webp index dfd2f0b2..37ff9cd0 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.jpg index 87711067..d819fcf8 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.png index 16446cc8..3a2a7349 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.webp index da88e380..6c19f103 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_2_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.jpg index 326fb6a8..f7632f08 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.png index 4cb00322..eb621305 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.webp index d5231880..3e361845 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.jpg index abf46b80..e7163b76 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.png index 10fe44e4..f35f90db 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.webp index 61ce6b31..94d6fbc4 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_3_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.jpg index d50d51b8..7c108012 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.png index 32696865..d19c11a7 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.webp index 2a6df3c0..c82067fa 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.jpg index 0f2cde92..40bed71a 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.png index f97bd6f0..0070a331 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.webp index fcd9e8d6..bdd33c2a 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_4_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.jpg index 749ce8ca..677911d8 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.png index 202c7d29..89fa5b67 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.webp index 36962266..fa9bf6c8 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.jpg index 78e63972..d1edb824 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.png index d4525aa5..f8916e91 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.webp index 42204187..e4593aad 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_5_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.jpg index abd799e1..01beeb42 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.png index ed22298b..d30497f1 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.webp index b328c8b5..8f5bb5c2 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.jpg index daed354a..2f66c553 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.png index 88ea7d2d..265cc662 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.webp index 15883100..3d1522bc 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_6_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.jpg index b66ee1b4..9a789b89 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.png index b6fe4ccd..0c9489d0 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.webp index 132dbf71..51fe54ed 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.jpg index 6398c822..4fcdd7c1 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.png index 3f7137c7..73ecf9a5 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.webp index fd11bdf7..d432c57a 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_7_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.jpg index 89dc7a1f..0f8e6886 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.png index 1f3b977b..c732c19a 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.webp index aadfdac7..2dc1139a 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.jpg index 55dc02c3..b06f1b31 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.png index d0051852..cafc6659 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.webp index ae977146..eedb3474 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_8_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.jpg index 4e68290d..12d44ffb 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.png index 3db4161a..c2323f79 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.webp index 9a2849d9..c02fe1d3 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9.webp differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.jpg b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.jpg index b9a24fa7..aa6a6e54 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.jpg and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.png b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.png index 01820aa7..7a79eaa9 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.png and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.webp b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.webp index 3842bc4c..dee28ccc 100644 Binary files a/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.webp and b/src/Tests/Assets/Expected/OSX/Wikimedia_Commons_web_9_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.jpg b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.jpg index fde84014..4cc7a43c 100644 Binary files a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.jpg and b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.png b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.png index 93ed5baa..cdd8fee9 100644 Binary files a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.png and b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.png differ diff --git a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.webp b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.webp index db929d24..8ea5d6de 100644 Binary files a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.webp and b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_False.webp differ diff --git a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.jpg b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.jpg index 4b4e81ad..d96fe8f9 100644 Binary files a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.jpg and b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.jpg differ diff --git a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.png b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.png index 40b8800b..81ed1ce2 100644 Binary files a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.png and b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.png differ diff --git a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.webp b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.webp index ded26cfc..a0d35649 100644 Binary files a/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.webp and b/src/Tests/Assets/Expected/OSX/hundesteuer-anmeldung_True.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg index 6041eae8..e19fee1e 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png index 4a5e1127..8c7ec9a6 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp index 05c916a1..19805a9b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg index f7a75794..346c5b6a 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png index 7462b4ad..0e8cf4d4 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp index d577c500..ee1ba4f1 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_images_paths.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg index 6041eae8..e19fee1e 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png index 4a5e1127..8c7ec9a6 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp index 05c916a1..19805a9b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_none.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg index f7a75794..346c5b6a 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png index 7462b4ad..0e8cf4d4 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp index d577c500..ee1ba4f1 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_paths.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg index 656bebd4..ebfffbaf 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png index c7780065..35f40ec0 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp index a9071550..39ed68b7 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg index 656bebd4..ebfffbaf 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png index c7780065..35f40ec0 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp index a9071550..39ed68b7 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg index d45c0dc9..88cda29d 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png index d5ea3619..a37a3bca 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp index 0e839da8..a4e9a82e 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_images_paths.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg index d45c0dc9..88cda29d 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png index d5ea3619..a37a3bca 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp index 0e839da8..a4e9a82e 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp and b/src/Tests/Assets/Expected/WINDOWS/AntiAliasing/hundesteuer-anmeldung_aliasing_text_paths.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg index 8c011a4c..faeb2588 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg index 8c011a4c..faeb2588 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg index 9e77edc1..ccabe46f 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg index 9e77edc1..ccabe46f 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg index 12a29941..3b84647b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/SocialPreview.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg index 454f1da5..472f5367 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg index 809823cd..bf2b3877 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg index 454e2962..43e28312 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg index 2901a587..89913c2c 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg index 2901a587..89913c2c 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg index bfeec53a..51c91638 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg index bfeec53a..51c91638 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg index bd8d3906..424821b8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/Wikimedia_Commons_web.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg index ed5d3102..da361788 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg index ed5d3102..da361788 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg index ed5d3102..da361788 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg index ed5d3102..da361788 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=1000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg index acf50429..6334dc61 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg index acf50429..6334dc61 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg index acf50429..6334dc61 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg index acf50429..6334dc61 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=100_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg index c5b47c1a..33e339d3 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=1200_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg index c5b47c1a..33e339d3 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg index c5b47c1a..33e339d3 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg index c5b47c1a..33e339d3 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=2000_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg index 09ae2192..d0dbe974 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg index 09ae2192..d0dbe974 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=300_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg index d00a559d..488d0787 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg index d00a559d..488d0787 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=600_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg index 54fe0bff..d8c3631b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg index 54fe0bff..d8c3631b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=96_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg index 09ae2192..d0dbe974 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg index 09ae2192..d0dbe974 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg and b/src/Tests/Assets/Expected/WINDOWS/AspectRatio/hundesteuer-anmeldung.pdf_w=null_h=null_dpi=null_aspectratio=True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg index d589ce9c..9ee4e7b9 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png index 97ff7f19..21e1c620 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp index f880076e..be813f6f 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#00ffffff.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg index 0a31de86..d9f88f4a 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.png index 70605cbd..4a2b1a7d 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.webp index 07a5e5b4..c22d7ec7 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64000000.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg index 2e58ae37..eab14194 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.png index 63bdaa96..ee6e97b8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp index ebb4c5ce..ab6c07ae 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#640000ff.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg index e4be508e..344a1f70 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png index 2986fe55..005f8b2f 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp index 503d3bfd..e8101399 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ff00.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg index 38e7878c..25886c13 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png index b576dac0..250af4ca 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp index c160ecd5..a4041fcc 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#6400ffff.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg index 50dd179a..6d612bb1 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png index afb1922d..89d727f8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp index f58b9856..7a8383e4 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff0000.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg index 4c3ff100..96cd4ccd 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png index bdff5ede..6c9c0c3f 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp index a94be690..2b60678c 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ff00ff.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg index c90ae0b2..6a422b2b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png index 20699997..a2f7146f 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp index 4a774686..c7f2a20d 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffff00.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg index 3317e367..726945ac 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png index 177c3497..be3932da 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp index 0547b5bb..e76897a8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#64ffffff.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg index afe34b62..39aaaea2 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.png index 5d9c1f19..51cd7a05 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp index 58344304..a0b976b4 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff000000.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg index b3d534aa..c13f10d6 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png index 4742c0a5..4cc2b541 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp index a8de3434..d69a92b7 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff0000ff.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg index 5b3ecaf1..e8a019b5 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png index 6ac65f3c..60c8f314 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp index 9f61c9f6..5784abe5 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ff00.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg index 4deff5fd..f39fd2b1 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png index f3fcdaad..94e50687 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp index 1554bacd..daf28580 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ff00ffff.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg index 02fd3277..a16524ae 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png index 8e34a6c2..cec53194 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp index afdf9e7a..42a1adcd 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff0000.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg index c3ee9afb..0e37a611 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png index 1e5cb777..0944cb05 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp index d6d968cf..81d19664 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffff00ff.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg index 75045bc9..78d40546 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png index 35180344..cdc4dab4 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp index 44e607ec..c3c73cca 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffff00.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg index d45c0dc9..88cda29d 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png index d5ea3619..a37a3bca 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp index 0e839da8..a4e9a82e 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp and b/src/Tests/Assets/Expected/WINDOWS/BackgroundColor/hundesteuer-anmeldung_#ffffffff.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-200-200.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-200-200.png new file mode 100644 index 00000000..5a29020f Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-200-200.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638.png new file mode 100644 index 00000000..e10965cb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_500x500.png new file mode 100644 index 00000000..3063480d Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..c25bd170 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..1beedf25 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..d5131796 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_annot.png new file mode 100644 index 00000000..4dd73bd2 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..e10965cb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-595,276.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-595,276.png new file mode 100644 index 00000000..01842b03 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,76399-595,276.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638.png new file mode 100644 index 00000000..e10965cb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_500x500.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_500x500.png new file mode 100644 index 00000000..3063480d Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_Rotate180.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_Rotate180.png new file mode 100644 index 00000000..c25bd170 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_Rotate270.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_Rotate270.png new file mode 100644 index 00000000..1beedf25 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_Rotate90.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_Rotate90.png new file mode 100644 index 00000000..d5131796 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_annot.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_annot.png new file mode 100644 index 00000000..4dd73bd2 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_nullxnull.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_nullxnull.png new file mode 100644 index 00000000..e10965cb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-595,276.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-595,276.png new file mode 100644 index 00000000..01842b03 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-209,764-595,276.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-297,638.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-297,638.png new file mode 100644 index 00000000..bc762d64 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-297,638.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276.png new file mode 100644 index 00000000..124566ba Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_500x500.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_500x500.png new file mode 100644 index 00000000..aa912cd3 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_500x500.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate180.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate180.png new file mode 100644 index 00000000..52e60eeb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate270.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate270.png new file mode 100644 index 00000000..8d0324b4 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate90.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate90.png new file mode 100644 index 00000000..4f0d5c2f Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_annot.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_annot.png new file mode 100644 index 00000000..8c96d2bf Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_annot.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_nullxnull.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_nullxnull.png new file mode 100644 index 00000000..124566ba Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,52798-595,276_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-297,638.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-297,638.png new file mode 100644 index 00000000..bc762d64 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-297,638.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276.png new file mode 100644 index 00000000..124566ba Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_500x500.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_500x500.png new file mode 100644 index 00000000..aa912cd3 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_500x500.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_Rotate180.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_Rotate180.png new file mode 100644 index 00000000..52e60eeb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_Rotate270.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_Rotate270.png new file mode 100644 index 00000000..8d0324b4 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_Rotate90.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_Rotate90.png new file mode 100644 index 00000000..4f0d5c2f Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_annot.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_annot.png new file mode 100644 index 00000000..8c96d2bf Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_annot.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_nullxnull.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_nullxnull.png new file mode 100644 index 00000000..124566ba Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-0-419,528-595,276_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638.png new file mode 100644 index 00000000..9acbfebb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_500x500.png new file mode 100644 index 00000000..9fd7b6e2 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..7ba82e04 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..506aad5c Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..b5b7be9e Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_annot.png new file mode 100644 index 00000000..b28251b0 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..9acbfebb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638.png new file mode 100644 index 00000000..9acbfebb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_500x500.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_500x500.png new file mode 100644 index 00000000..9fd7b6e2 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_Rotate180.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_Rotate180.png new file mode 100644 index 00000000..7ba82e04 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_Rotate270.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_Rotate270.png new file mode 100644 index 00000000..506aad5c Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_Rotate90.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_Rotate90.png new file mode 100644 index 00000000..b5b7be9e Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_annot.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_annot.png new file mode 100644 index 00000000..b28251b0 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_nullxnull.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_nullxnull.png new file mode 100644 index 00000000..9acbfebb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-297,638-209,764-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-395,276-200-200.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-395,276-200-200.png new file mode 100644 index 00000000..bb66cefb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_0-395,276-200-200.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638.png new file mode 100644 index 00000000..18bfb309 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_500x500.png new file mode 100644 index 00000000..80dc4d69 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..370ab3b0 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..e40b386c Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..481d21ca Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_annot.png new file mode 100644 index 00000000..fc871364 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..18bfb309 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-0-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638.png new file mode 100644 index 00000000..cf3fc239 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_500x500.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_500x500.png new file mode 100644 index 00000000..26aa1536 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate180.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate180.png new file mode 100644 index 00000000..7a84cfee Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate270.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate270.png new file mode 100644 index 00000000..b122306a Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate90.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate90.png new file mode 100644 index 00000000..534824f0 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_annot.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_annot.png new file mode 100644 index 00000000..58daafd1 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_nullxnull.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_nullxnull.png new file mode 100644 index 00000000..cf3fc239 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,76399-297,638-209,76399-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638.png new file mode 100644 index 00000000..18bfb309 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_500x500.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_500x500.png new file mode 100644 index 00000000..80dc4d69 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_Rotate180.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_Rotate180.png new file mode 100644 index 00000000..370ab3b0 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_Rotate270.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_Rotate270.png new file mode 100644 index 00000000..e40b386c Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_Rotate90.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_Rotate90.png new file mode 100644 index 00000000..481d21ca Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_annot.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_annot.png new file mode 100644 index 00000000..fc871364 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_nullxnull.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_nullxnull.png new file mode 100644 index 00000000..18bfb309 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-0-209,764-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638.png new file mode 100644 index 00000000..cf3fc239 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_500x500.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_500x500.png new file mode 100644 index 00000000..26aa1536 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_500x500.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_Rotate180.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_Rotate180.png new file mode 100644 index 00000000..7a84cfee Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_Rotate270.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_Rotate270.png new file mode 100644 index 00000000..b122306a Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_Rotate90.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_Rotate90.png new file mode 100644 index 00000000..534824f0 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_annot.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_annot.png new file mode 100644 index 00000000..58daafd1 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_annot.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_nullxnull.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_nullxnull.png new file mode 100644 index 00000000..cf3fc239 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_209,764-297,638-209,764-297,638_nullxnull.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,52798-0-200-200.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,52798-0-200-200.png new file mode 100644 index 00000000..e08bb4bb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,52798-0-200-200.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,52798-395,276-200-200.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,52798-395,276-200-200.png new file mode 100644 index 00000000..3b0b03da Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,52798-395,276-200-200.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,528-0-200-200.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,528-0-200-200.png new file mode 100644 index 00000000..e08bb4bb Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,528-0-200-200.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,528-395,276-200-200.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,528-395,276-200-200.png new file mode 100644 index 00000000..3b0b03da Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_219,528-395,276-200-200.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_default.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_default.png new file mode 100644 index 00000000..124566ba Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/Wikimedia_Commons_web_default.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02.png new file mode 100644 index 00000000..abc29e59 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02_form.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02_form.png new file mode 100644 index 00000000..23466059 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04.png new file mode 100644 index 00000000..6886c970 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04_form.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04_form.png new file mode 100644 index 00000000..5a2ceae5 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-0-595,56-842,04_form.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02.png new file mode 100644 index 00000000..9ea9cccf Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02_form.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02_form.png new file mode 100644 index 00000000..50c78d13 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_0-421,02-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02.png new file mode 100644 index 00000000..988e8312 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02_form.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02_form.png new file mode 100644 index 00000000..856c638c Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-0-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02.png new file mode 100644 index 00000000..e3c201ce Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02_form.png b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02_form.png new file mode 100644 index 00000000..6ff33f38 Binary files /dev/null and b/src/Tests/Assets/Expected/WINDOWS/Bounds/hundesteuer-anmeldung_297,78-421,02-297,78-421,02_form.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.jpg b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.jpg index d45c0dc9..88cda29d 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.jpg and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.png index d5ea3619..a37a3bca 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.webp b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.webp index 0e839da8..a4e9a82e 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.webp and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png index 1e43dec0..53423ff5 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullx200_False.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png index d5ea3619..a37a3bca 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png index d5ea3619..a37a3bca 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate0_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.jpg b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.jpg index 9b7802f8..bb96eb15 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.jpg and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.png index c9c85535..1d2a9600 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.webp b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.webp index 82ae042e..a2cb763b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.webp and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png index 4da80f42..5ff0f153 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullx200_False.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png index c9c85535..1d2a9600 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png index c9c85535..1d2a9600 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate180_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.jpg b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.jpg index c5f6c461..cb2c6404 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.jpg and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.png index 2e74b3cd..1e6769e2 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.webp b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.webp index 31063152..4d1952cf 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.webp and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png index 2e74b3cd..1e6769e2 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png index 2e74b3cd..1e6769e2 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate270_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.jpg b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.jpg index cb65dffc..7014b8d8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.jpg and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.png index 82bf262c..c0851989 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.webp b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.webp index 14860445..28c6c85d 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.webp and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png index d5441fe6..52f7e866 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullx200_False.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png index 82bf262c..c0851989 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_False.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png index 82bf262c..c0851989 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png and b/src/Tests/Assets/Expected/WINDOWS/Rotation/hundesteuer-anmeldung_Rotate90_nullxnull_True.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.jpg index 73a03c41..74220549 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.png index 778778b7..cf69638f 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.webp index 47ff6c1b..dc4ff83e 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.jpg index caf5e6c3..df3fd0fa 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.png index 9fa5fda6..43179d68 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.webp index 4843df19..8eadcebb 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_0_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.jpg index 4a9905ca..1970454c 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.png index d69dc362..6eaaf86b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.webp index b9c832e8..6791e884 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.jpg index b3d3f695..24f2c50b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.png index 7d99998e..9a969b5a 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.webp index 47bafd92..31e1f0ae 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.jpg index a21c8a9e..2ee013d7 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.png index d2534f76..b3c595f2 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.webp index 4df157fa..e891c1ab 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_10_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.jpg index a0294398..da35f2cb 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.png index 8702d244..993fc8f1 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.webp index 4e6ea628..c187bc85 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.jpg index 7a9dd327..3fd8203c 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.png index 15e692b5..945370d9 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.webp index 89190995..497cfdbc 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_11_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.jpg index 1fb94e15..b0c1f923 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.png index b82aa688..7d5cbc71 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.webp index bbab9904..93962cd8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.jpg index e6ba2b62..1bbbfa11 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.png index 83868622..bb743967 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.webp index 12be227d..3f6e32fb 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_12_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.jpg index 0ba831ea..6af028a6 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.png index dfb61295..da2c299b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.webp index a464d30d..6f2cbe00 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.jpg index 1b9c025a..05a385ee 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.png index cbc8643e..5a925ac8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.webp index 6770f609..49d9bcf1 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_13_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.jpg index dd0d4f02..b66608f3 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.png index 0b42fa76..4de74765 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.webp index 1c25f0dd..9cfab7b7 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.jpg index c4aa3a95..eb2386cb 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.png index 2b2def02..a38d1275 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.webp index 03cb2c12..1e3b6582 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_14_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.jpg index 1e52f0d4..04df3131 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.png index 5da55aa5..42696b15 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.webp index 52a8fc01..9324f88f 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.jpg index cdf132d1..8ae2d817 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.png index 554a8832..c9cf892c 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.webp index b8e68e83..dc99e3a6 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_15_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.jpg index ecbceac7..61b79cfe 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.png index 3d63ee8d..812504a0 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.webp index 08bc36fb..87e7350c 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.jpg index d51a2d3b..f1574e5c 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.png index 92141ad7..727bd022 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.webp index 3162fc1f..63b02300 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_16_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.jpg index 3eeb95b9..1415b932 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.png index d4387c2f..e41dcf0b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.webp index 1dcf96c4..4fe9743c 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.jpg index 5c4118d7..253e9426 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.png index 5b5e899c..1190d19b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.webp index 87707b40..34a88016 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_17_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.jpg index 14ad35fb..dd3ee466 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.png index 8c8399fc..4e85fbd7 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.webp index 7a38e736..71dbb561 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.jpg index 24586929..1a1bda97 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.png index 737b7745..956d063f 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.webp index 2bc508e3..a8ee606e 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_18_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.jpg index 6b675b14..92ec0b72 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.png index 8c4880fe..72109a16 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.webp index 34bf5acb..753454af 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.jpg index f80c4132..a75fb813 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.png index 7aab8be3..b47b63a3 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.webp index bbca8163..32e8e180 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_19_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.jpg index 0bb91298..6a0c3763 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.png index 83d03a9d..a3a00208 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.webp index 0452c23f..0481824b 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_1_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.jpg index f1d48ea1..bb3f1e5c 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.png index b60c66eb..8e8a2852 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.webp index dfd2f0b2..37ff9cd0 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.jpg index 87711067..d819fcf8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.png index 16446cc8..3a2a7349 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.webp index da88e380..6c19f103 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_2_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.jpg index 326fb6a8..f7632f08 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.png index 4cb00322..eb621305 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.webp index d5231880..3e361845 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.jpg index abf46b80..e7163b76 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.png index 10fe44e4..f35f90db 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.webp index 61ce6b31..94d6fbc4 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_3_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.jpg index d50d51b8..7c108012 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.png index 32696865..d19c11a7 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.webp index 2a6df3c0..c82067fa 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.jpg index 0f2cde92..40bed71a 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.png index f97bd6f0..0070a331 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.webp index fcd9e8d6..bdd33c2a 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_4_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.jpg index 749ce8ca..677911d8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.png index 202c7d29..89fa5b67 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.webp index 36962266..fa9bf6c8 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.jpg index 78e63972..d1edb824 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.png index d4525aa5..f8916e91 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.webp index 42204187..e4593aad 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_5_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.jpg index abd799e1..01beeb42 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.png index ed22298b..d30497f1 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.webp index b328c8b5..8f5bb5c2 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.jpg index daed354a..2f66c553 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.png index 88ea7d2d..265cc662 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.webp index 15883100..3d1522bc 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_6_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.jpg index b66ee1b4..9a789b89 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.png index b6fe4ccd..0c9489d0 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.webp index 132dbf71..51fe54ed 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.jpg index 6398c822..4fcdd7c1 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.png index 3f7137c7..73ecf9a5 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.webp index fd11bdf7..d432c57a 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_7_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.jpg index 89dc7a1f..0f8e6886 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.png index 1f3b977b..c732c19a 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.webp index aadfdac7..2dc1139a 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.jpg index 55dc02c3..b06f1b31 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.png index d0051852..cafc6659 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.webp index ae977146..eedb3474 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_8_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.jpg index 4e68290d..12d44ffb 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.png index 3db4161a..c2323f79 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.webp index 9a2849d9..c02fe1d3 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.jpg b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.jpg index b9a24fa7..aa6a6e54 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.jpg and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.png b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.png index 01820aa7..7a79eaa9 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.png and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.webp b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.webp index 3842bc4c..dee28ccc 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.webp and b/src/Tests/Assets/Expected/WINDOWS/Wikimedia_Commons_web_9_ANNOT.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.jpg b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.jpg index d45c0dc9..88cda29d 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.jpg and b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.png b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.png index d5ea3619..a37a3bca 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.png and b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.webp b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.webp index 0e839da8..a4e9a82e 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.webp and b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_False.webp differ diff --git a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.jpg b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.jpg index 6f889598..a2b17afe 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.jpg and b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.jpg differ diff --git a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.png b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.png index 9feda7c5..a838e14c 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.png and b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.png differ diff --git a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.webp b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.webp index b6613066..e8d8ba85 100644 Binary files a/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.webp and b/src/Tests/Assets/Expected/WINDOWS/hundesteuer-anmeldung_True.webp differ diff --git a/src/Tests/BackgroundColorTests.cs b/src/Tests/BackgroundColorTests.cs index cb2c2163..43943b8d 100644 --- a/src/Tests/BackgroundColorTests.cs +++ b/src/Tests/BackgroundColorTests.cs @@ -46,9 +46,9 @@ public void SaveJpegWithBackgroundColor(uint? backgroundColor) using var outputStream = CreateOutputStream(expectedPath); if (backgroundColor == null) - SaveJpeg(outputStream, inputStream, dpi: 40); + SaveJpeg(outputStream, inputStream, options: new(Dpi: 40)); else - SaveJpeg(outputStream, inputStream, dpi: 40, backgroundColor: backgroundColor.Value); + SaveJpeg(outputStream, inputStream, options: new(Dpi: 40, BackgroundColor: backgroundColor.Value)); CompareStreams(expectedPath, outputStream); } @@ -80,9 +80,9 @@ public void SavePngWithBackgroundColor(uint? backgroundColor) using var outputStream = CreateOutputStream(expectedPath); if (backgroundColor == null) - SavePng(outputStream, inputStream, dpi: 40); + SavePng(outputStream, inputStream, options: new(Dpi: 40)); else - SavePng(outputStream, inputStream, dpi: 40, backgroundColor: backgroundColor.Value); + SavePng(outputStream, inputStream, options: new(Dpi: 40, BackgroundColor: backgroundColor.Value)); CompareStreams(expectedPath, outputStream); } @@ -114,9 +114,9 @@ public void SaveWebpWithBackgroundColor(uint? backgroundColor) using var outputStream = CreateOutputStream(expectedPath); if (backgroundColor == null) - SaveWebp(outputStream, inputStream, dpi: 40); + SaveWebp(outputStream, inputStream, options: new(Dpi: 40)); else - SaveWebp(outputStream, inputStream, dpi: 40, backgroundColor: backgroundColor.Value); + SaveWebp(outputStream, inputStream, options: new(Dpi: 40, BackgroundColor: backgroundColor.Value)); CompareStreams(expectedPath, outputStream); } diff --git a/src/Tests/BoundsTests.cs b/src/Tests/BoundsTests.cs new file mode 100644 index 00000000..09285aac --- /dev/null +++ b/src/Tests/BoundsTests.cs @@ -0,0 +1,193 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using PDFtoImage; +using PDFtoImage.Tests; +using System; +using System.Drawing; +using System.IO; +using static PDFtoImage.Conversion; +using static PDFtoImage.Tests.TestUtils; + +namespace Tests +{ + [TestClass] + public class BoundsTests : TestBase + { + [TestMethod] + [DataRow(null)] + [DataRow(default)] + public void NullOrDefault(RectangleF? bounds = null) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "Bounds", $"Wikimedia_Commons_web_{GetFileName(bounds, default, default, default)}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + SavePng(outputStream, inputStream, options: new(Dpi: 300, Bounds: bounds)); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(0f, 0f, 419.527985f, 595.276f)] + [DataRow(0f, 0f, 419.527985f, 297.638f)] + [DataRow(0f, 0f, 209.7639925f, 595.276f)] + [DataRow(0f, 0f, 209.7639925f, 297.638f)] + [DataRow(209.7639925f, 0f, 209.7639925f, 297.638f)] + [DataRow(0f, 297.638f, 209.7639925f, 297.638f)] + [DataRow(209.7639925f, 297.638f, 209.7639925f, 297.638f)] + [DataRow(0f, 0f, 200f, 200f)] + [DataRow(219.527985f, 0f, 200f, 200f)] + [DataRow(0f, 395.276f, 200f, 200f)] + [DataRow(219.527985f, 395.276f, 200f, 200f)] + public void Normal(float x, float y, float width, float height) + { + var bounds = new RectangleF(x, y, width, height); + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "Bounds", $"Wikimedia_Commons_web_{GetFileName(bounds, default, default, default)}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + SavePng(outputStream, inputStream, options: new(Dpi: 300, Bounds: bounds)); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(0f, 0f, 419.527985f, 595.276f, default)] + [DataRow(0f, 0f, 209.7639925f, 297.638f, default)] + [DataRow(209.7639925f, 0f, 209.7639925f, 297.638f, default)] + [DataRow(0f, 297.638f, 209.7639925f, 297.638f, default)] + [DataRow(209.7639925f, 297.638f, 209.7639925f, 297.638f, default)] + [DataRow(0f, 0f, 419.527985f, 595.276f, PdfRotation.Rotate0)] + [DataRow(0f, 0f, 209.7639925f, 297.638f, PdfRotation.Rotate0)] + [DataRow(209.7639925f, 0f, 209.7639925f, 297.638f, PdfRotation.Rotate0)] + [DataRow(0f, 297.638f, 209.7639925f, 297.638f, PdfRotation.Rotate0)] + [DataRow(209.7639925f, 297.638f, 209.7639925f, 297.638f, PdfRotation.Rotate0)] + [DataRow(0f, 0f, 419.527985f, 595.276f, PdfRotation.Rotate180)] + [DataRow(0f, 0f, 209.7639925f, 297.638f, PdfRotation.Rotate180)] + [DataRow(209.7639925f, 0f, 209.7639925f, 297.638f, PdfRotation.Rotate180)] + [DataRow(0f, 297.638f, 209.7639925f, 297.638f, PdfRotation.Rotate180)] + [DataRow(209.7639925f, 297.638f, 209.7639925f, 297.638f, PdfRotation.Rotate180)] + [DataRow(0f, 0f, 419.527985f, 595.276f, PdfRotation.Rotate90)] + [DataRow(0f, 0f, 209.7639925f, 297.638f, PdfRotation.Rotate90)] + [DataRow(209.7639925f, 0f, 209.7639925f, 297.638f, PdfRotation.Rotate90)] + [DataRow(0f, 297.638f, 209.7639925f, 297.638f, PdfRotation.Rotate90)] + [DataRow(209.7639925f, 297.638f, 209.7639925f, 297.638f, PdfRotation.Rotate90)] + [DataRow(0f, 0f, 419.527985f, 595.276f, PdfRotation.Rotate270)] + [DataRow(0f, 0f, 209.7639925f, 297.638f, PdfRotation.Rotate270)] + [DataRow(209.7639925f, 0f, 209.7639925f, 297.638f, PdfRotation.Rotate270)] + [DataRow(0f, 297.638f, 209.7639925f, 297.638f, PdfRotation.Rotate270)] + [DataRow(209.7639925f, 297.638f, 209.7639925f, 297.638f, PdfRotation.Rotate270)] + public void WithRotation(float x, float y, float width, float height, PdfRotation? rotation) + { + var bounds = new RectangleF(x, y, width, height); + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "Bounds", $"Wikimedia_Commons_web_{GetFileName(bounds, rotation, default, default)}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (rotation != null) + SavePng(outputStream, inputStream, options: new(Dpi: 300, Rotation: rotation.Value, Bounds: bounds)); + else + SavePng(outputStream, inputStream, options: new(Dpi: 300, Bounds: bounds)); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(0f, 0f, 419.527985f, 595.276f, default)] + [DataRow(0f, 0f, 209.7639925f, 297.638f, default)] + [DataRow(209.7639925f, 0f, 209.7639925f, 297.638f, default)] + [DataRow(0f, 297.638f, 209.7639925f, 297.638f, default)] + [DataRow(209.7639925f, 297.638f, 209.7639925f, 297.638f, default)] + [DataRow(0f, 0f, 419.527985f, 595.276f, false)] + [DataRow(0f, 0f, 209.7639925f, 297.638f, false)] + [DataRow(209.7639925f, 0f, 209.7639925f, 297.638f, false)] + [DataRow(0f, 297.638f, 209.7639925f, 297.638f, false)] + [DataRow(209.7639925f, 297.638f, 209.7639925f, 297.638f, false)] + [DataRow(0f, 0f, 419.527985f, 595.276f, true)] + [DataRow(0f, 0f, 209.7639925f, 297.638f, true)] + [DataRow(209.7639925f, 0f, 209.7639925f, 297.638f, true)] + [DataRow(0f, 297.638f, 209.7639925f, 297.638f, true)] + [DataRow(209.7639925f, 297.638f, 209.7639925f, 297.638f, true)] + public void WithAnnotations(float x, float y, float width, float height, bool? withAnnotations = null) + { + var bounds = new RectangleF(x, y, width, height); + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "Bounds", $"Wikimedia_Commons_web_{GetFileName(bounds, default, withAnnotations, default)}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (withAnnotations != null) + SavePng(outputStream, inputStream, options: new(Dpi: 300, WithAnnotations: withAnnotations.Value, Bounds: bounds)); + else + SavePng(outputStream, inputStream, options: new(Dpi: 300, Bounds: bounds)); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(0f, 0f, 595.56f, 842.04f, default)] + [DataRow(0f, 0f, 297.78f, 421.02f, default)] + [DataRow(297.78f, 0f, 297.78f, 421.02f, default)] + [DataRow(0f, 421.02f, 297.78f, 421.02f, default)] + [DataRow(297.78f, 421.02f, 297.78f, 421.02f, default)] + [DataRow(0f, 0f, 595.56f, 842.04f, false)] + [DataRow(0f, 0f, 297.78f, 421.02f, false)] + [DataRow(297.78f, 0f, 297.78f, 421.02f, false)] + [DataRow(0f, 421.02f, 297.78f, 421.02f, false)] + [DataRow(297.78f, 421.02f, 297.78f, 421.02f, false)] + [DataRow(0f, 0f, 595.56f, 842.04f, true)] + [DataRow(0f, 0f, 297.78f, 421.02f, true)] + [DataRow(297.78f, 0f, 297.78f, 421.02f, true)] + [DataRow(0f, 421.02f, 297.78f, 421.02f, true)] + [DataRow(297.78f, 421.02f, 297.78f, 421.02f, true)] + public void WithFormFill(float x, float y, float width, float height, bool? withFormFill = null) + { + var bounds = new RectangleF(x, y, width, height); + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "Bounds", $"hundesteuer-anmeldung_{GetFileName(bounds, default, default, withFormFill)}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (withFormFill != null) + SavePng(outputStream, inputStream, options: new(Dpi: 300, WithFormFill: withFormFill.Value, Bounds: bounds)); + else + SavePng(outputStream, inputStream, options: new(Dpi: 300, Bounds: bounds)); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(0f, 0f, 419.527985f, 595.276f, default, default)] + [DataRow(0f, 0f, 209.7639925f, 297.638f, default, default)] + [DataRow(209.7639925f, 0f, 209.7639925f, 297.638f, default, default)] + [DataRow(0f, 297.638f, 209.7639925f, 297.638f, default, default)] + [DataRow(209.7639925f, 297.638f, 209.7639925f, 297.638f, default, default)] + [DataRow(0f, 0f, 419.527985f, 595.276f, 500, 500)] + [DataRow(0f, 0f, 209.7639925f, 297.638f, 500, 500)] + [DataRow(209.7639925f, 0f, 209.7639925f, 297.638f, 500, 500)] + [DataRow(0f, 297.638f, 209.7639925f, 297.638f, 500, 500)] + [DataRow(209.7639925f, 297.638f, 209.7639925f, 297.638f, 500, 500)] + public void WithWidthAndHeight(float x, float y, float width, float height, int? outputWidth = null, int? outputHeight = null) + { + var bounds = new RectangleF(x, y, width, height); + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "Bounds", $"Wikimedia_Commons_web_{GetFileName(bounds, default, default, default)}_{outputWidth?.ToString() ?? "null"}x{outputHeight?.ToString() ?? "null"}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + SavePng(outputStream, inputStream, options: new(Width: outputWidth, Height: outputHeight, Bounds: bounds)); + + CompareStreams(expectedPath, outputStream); + } + + private static string GetFileName(RectangleF? input, PdfRotation? rotation, bool? withAnnotations, bool? withFormFill) + { + if (input == null) + return "default"; + + return $"{input.Value.X}-{input.Value.Y}-{input.Value.Width}-{input.Value.Height}{(rotation != null && rotation != PdfRotation.Rotate0 ? $"_{Enum.GetName(typeof(PdfRotation), rotation)}" : string.Empty)}{(withAnnotations == true ? "_annot" : string.Empty)}{(withFormFill == true ? "_form" : string.Empty)}".Replace('.', ','); + } + } +} \ No newline at end of file diff --git a/src/Tests/ComparisonTests.cs b/src/Tests/ComparisonTests.cs index 9b3ca742..13a0d551 100644 --- a/src/Tests/ComparisonTests.cs +++ b/src/Tests/ComparisonTests.cs @@ -63,7 +63,7 @@ public void SaveWebpPageNumber(int page, bool withAnnotations = false) using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); using var outputStream = CreateOutputStream(expectedPath); - SaveWebp(outputStream, inputStream, page: page, dpi: 40, withAnnotations: withAnnotations); + SaveWebp(outputStream, inputStream, page: page, options: new(Dpi: 40, WithAnnotations: withAnnotations)); CompareStreams(expectedPath, outputStream); } @@ -77,7 +77,7 @@ public void SaveWebpPages(bool withAnnotations = false) int page = 0; - foreach (var image in ToImages(inputStream, dpi: 40, withAnnotations: withAnnotations)) + foreach (var image in ToImages(inputStream, options: new(Dpi: 40, WithAnnotations: withAnnotations))) { var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.webp"); @@ -100,7 +100,7 @@ public async Task SaveWebpPagesAsync(bool withAnnotations = false) int page = 0; - await foreach (var image in ToImagesAsync(inputStream, dpi: 40, withAnnotations: withAnnotations)) + await foreach (var image in ToImagesAsync(inputStream, options: new(Dpi: 40, WithAnnotations: withAnnotations))) { var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.webp"); @@ -162,7 +162,7 @@ public void SavePngPageNumber(int page, bool withAnnotations = false) using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); using var outputStream = CreateOutputStream(expectedPath); - SavePng(outputStream, inputStream, page: page, dpi: 40, withAnnotations: withAnnotations); + SavePng(outputStream, inputStream, page: page, options: new(Dpi: 40, WithAnnotations: withAnnotations)); CompareStreams(expectedPath, outputStream); } @@ -176,7 +176,7 @@ public void SavePngPages(bool withAnnotations = false) int page = 0; - foreach (var image in ToImages(inputStream, dpi: 40, withAnnotations: withAnnotations)) + foreach (var image in ToImages(inputStream, options: new(Dpi: 40, WithAnnotations: withAnnotations))) { var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.png"); @@ -199,7 +199,7 @@ public async Task SavePngPagesAsync(bool withAnnotations = false) int page = 0; - await foreach (var image in ToImagesAsync(inputStream, dpi: 40, withAnnotations: withAnnotations)) + await foreach (var image in ToImagesAsync(inputStream, options: new(Dpi: 40, WithAnnotations: withAnnotations))) { var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.png"); @@ -261,7 +261,7 @@ public void SaveJpegPageNumber(int page, bool withAnnotations = false) using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); using var outputStream = CreateOutputStream(expectedPath); - SaveJpeg(outputStream, inputStream, page: page, dpi: 40, withAnnotations: withAnnotations); + SaveJpeg(outputStream, inputStream, page: page, options: new(Dpi: 40, WithAnnotations: withAnnotations)); CompareStreams(expectedPath, outputStream); } @@ -275,7 +275,7 @@ public void SaveJpegPages(bool withAnnotations = false) int page = 0; - foreach (var image in ToImages(inputStream, dpi: 40, withAnnotations: withAnnotations)) + foreach (var image in ToImages(inputStream, options: new(Dpi: 40, WithAnnotations: withAnnotations))) { var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.jpg"); @@ -298,7 +298,7 @@ public async Task SaveJpegPagesAsync(bool withAnnotations = false) int page = 0; - await foreach (var image in ToImagesAsync(inputStream, dpi: 40, withAnnotations: withAnnotations)) + await foreach (var image in ToImagesAsync(inputStream, options: new(Dpi: 40, WithAnnotations: withAnnotations))) { var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.jpg"); @@ -328,10 +328,10 @@ public async Task SaveJpegPagesAsync(bool withAnnotations = false) public void SavePngDpi(int dpi, bool withAnnotations = false) { using var pdfStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); - using var image = ToImage(pdfStream, dpi: dpi, withAnnotations: withAnnotations); + using var image = ToImage(pdfStream, options: new(Dpi: dpi, WithAnnotations: withAnnotations)); using var pdfStream2 = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); - using var image2 = ToImage(pdfStream2, dpi: 300, withAnnotations: withAnnotations); + using var image2 = ToImage(pdfStream2, options: new(Dpi: 300, WithAnnotations: withAnnotations)); Assert.IsNotNull(image); Assert.IsTrue(Math.Abs(image.Width - image2.Width * (dpi / 300.0)) < 3); @@ -354,10 +354,10 @@ public void SavePngDpi(int dpi, bool withAnnotations = false) public void SavePngDpiImages(int dpi, bool withAnnotations = false) { using var pdfStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); - using var image = ToImages(pdfStream, dpi: dpi, withAnnotations: withAnnotations).Single(); + using var image = ToImages(pdfStream, options: new(Dpi: dpi, WithAnnotations: withAnnotations)).Single(); using var pdfStream2 = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); - using var image2 = ToImages(pdfStream2, dpi: 300, withAnnotations: withAnnotations).Single(); + using var image2 = ToImages(pdfStream2, options: new(Dpi: 300, WithAnnotations: withAnnotations)).Single(); Assert.IsNotNull(image); Assert.IsTrue(Math.Abs(image.Width - image2.Width * (dpi / 300.0)) < 3); @@ -382,7 +382,7 @@ public async Task SavePngDpiImagesAsync(int dpi, bool withAnnotations = false) { using var pdfStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); - await foreach (var image in ToImagesAsync(pdfStream, dpi: dpi, withAnnotations: withAnnotations)) + await foreach (var image in ToImagesAsync(pdfStream, options: new(Dpi: dpi, WithAnnotations: withAnnotations))) { Assert.IsNotNull(image); } @@ -413,7 +413,7 @@ await Assert.ThrowsExceptionAsync(async () => { token.Cancel(); - await foreach (var image in ToImagesAsync(inputStream, dpi: 1200, cancellationToken: token.Token)) + await foreach (var image in ToImagesAsync(inputStream, options: new(Dpi: 1200), cancellationToken: token.Token)) { } }); @@ -434,7 +434,7 @@ public async Task ToImagesAsyncOperationCanceledException(string pdfFileName) if (pageCount < 2) { // no OperationCanceledException should be thrown if there are not multiple pages to iterate through - await foreach (var image in ToImagesAsync(inputStream2, dpi: 1200, cancellationToken: token.Token)) + await foreach (var image in ToImagesAsync(inputStream2, options: new(Dpi: 1200), cancellationToken: token.Token)) { token.Cancel(); } @@ -444,7 +444,7 @@ public async Task ToImagesAsyncOperationCanceledException(string pdfFileName) await Assert.ThrowsExceptionAsync(async () => { - await foreach (var image in ToImagesAsync(inputStream2, dpi: 1200, cancellationToken: token.Token)) + await foreach (var image in ToImagesAsync(inputStream2, options: new(Dpi: 1200), cancellationToken: token.Token)) { token.Cancel(); } diff --git a/src/Tests/Compatibility/AntiAliasingTests.cs b/src/Tests/Compatibility/AntiAliasingTests.cs new file mode 100644 index 00000000..b944973e --- /dev/null +++ b/src/Tests/Compatibility/AntiAliasingTests.cs @@ -0,0 +1,121 @@ +#pragma warning disable CS0618 +using Microsoft.VisualStudio.TestTools.UnitTesting; +using PDFtoImage; +using System; +using System.IO; +using System.Text; +using static PDFtoImage.Compatibility.Conversion; +using static PDFtoImage.Tests.TestUtils; + +namespace Tests.Compatibility +{ + [TestClass] + public class AntiAliasingTests + { + [TestInitialize] + public void Initialize() + { +#if NET6_0_OR_GREATER + if (!OperatingSystem.IsWindows() && !OperatingSystem.IsLinux() && !OperatingSystem.IsMacOS()) + Assert.Inconclusive("This test must run on Windows, Linux or macOS."); +#endif + } + + [TestMethod] + [DataRow(null, DisplayName = "Default (None)")] + [DataRow(PdfAntiAliasing.None, DisplayName = "None")] + [DataRow(PdfAntiAliasing.Text, DisplayName = "Text")] + [DataRow(PdfAntiAliasing.Images, DisplayName = "Images")] + [DataRow(PdfAntiAliasing.Paths, DisplayName = "Paths")] + [DataRow(PdfAntiAliasing.Text | PdfAntiAliasing.Images, DisplayName = "Text | Images")] + [DataRow(PdfAntiAliasing.Text | PdfAntiAliasing.Paths, DisplayName = "Text | Paths")] + [DataRow(PdfAntiAliasing.Images | PdfAntiAliasing.Paths, DisplayName = "Images | Paths")] + [DataRow(PdfAntiAliasing.Text | PdfAntiAliasing.Images | PdfAntiAliasing.Paths, DisplayName = "Text | Images | Paths")] + [DataRow(PdfAntiAliasing.All, DisplayName = "All")] + public void SaveJpegWithAntiAliasing(PdfAntiAliasing? antiAliasing) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "AntiAliasing", $"hundesteuer-anmeldung_{GetFileName(antiAliasing ?? PdfAntiAliasing.All)}.jpg"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (antiAliasing == null) + SaveJpeg(outputStream, inputStream, dpi: 40); + else + SaveJpeg(outputStream, inputStream, dpi: 40, antiAliasing: antiAliasing.Value); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(null, DisplayName = "Default (None)")] + [DataRow(PdfAntiAliasing.None, DisplayName = "None")] + [DataRow(PdfAntiAliasing.Text, DisplayName = "Text")] + [DataRow(PdfAntiAliasing.Images, DisplayName = "Images")] + [DataRow(PdfAntiAliasing.Paths, DisplayName = "Paths")] + [DataRow(PdfAntiAliasing.Text | PdfAntiAliasing.Images, DisplayName = "Text | Images")] + [DataRow(PdfAntiAliasing.Text | PdfAntiAliasing.Paths, DisplayName = "Text | Paths")] + [DataRow(PdfAntiAliasing.Images | PdfAntiAliasing.Paths, DisplayName = "Images | Paths")] + [DataRow(PdfAntiAliasing.Text | PdfAntiAliasing.Images | PdfAntiAliasing.Paths, DisplayName = "Text | Images | Paths")] + [DataRow(PdfAntiAliasing.All, DisplayName = "All")] + public void SavePngWithAntiAliasing(PdfAntiAliasing? antiAliasing) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "AntiAliasing", $"hundesteuer-anmeldung_{GetFileName(antiAliasing ?? PdfAntiAliasing.All)}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (antiAliasing == null) + SavePng(outputStream, inputStream, dpi: 40); + else + SavePng(outputStream, inputStream, dpi: 40, antiAliasing: antiAliasing.Value); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(null, DisplayName = "Default (None)")] + [DataRow(PdfAntiAliasing.None, DisplayName = "None")] + [DataRow(PdfAntiAliasing.Text, DisplayName = "Text")] + [DataRow(PdfAntiAliasing.Images, DisplayName = "Images")] + [DataRow(PdfAntiAliasing.Paths, DisplayName = "Paths")] + [DataRow(PdfAntiAliasing.Text | PdfAntiAliasing.Images, DisplayName = "Text | Images")] + [DataRow(PdfAntiAliasing.Text | PdfAntiAliasing.Paths, DisplayName = "Text | Paths")] + [DataRow(PdfAntiAliasing.Images | PdfAntiAliasing.Paths, DisplayName = "Images | Paths")] + [DataRow(PdfAntiAliasing.Text | PdfAntiAliasing.Images | PdfAntiAliasing.Paths, DisplayName = "Text | Images | Paths")] + [DataRow(PdfAntiAliasing.All, DisplayName = "All")] + public void SaveWebpWithAntiAliasing(PdfAntiAliasing? antiAliasing) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "AntiAliasing", $"hundesteuer-anmeldung_{GetFileName(antiAliasing ?? PdfAntiAliasing.All)}.webp"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (antiAliasing == null) + SaveWebp(outputStream, inputStream, dpi: 40); + else + SaveWebp(outputStream, inputStream, dpi: 40, antiAliasing: antiAliasing.Value); + + CompareStreams(expectedPath, outputStream); + } + + private static string GetFileName(PdfAntiAliasing antiAliasing) + { + if (antiAliasing == PdfAntiAliasing.None) + return "aliasing_none"; + + var sb = new StringBuilder("aliasing"); + + if (antiAliasing.HasFlag(PdfAntiAliasing.Text)) + sb.Append("_text"); + + if (antiAliasing.HasFlag(PdfAntiAliasing.Images)) + sb.Append("_images"); + + if (antiAliasing.HasFlag(PdfAntiAliasing.Paths)) + sb.Append("_paths"); + + return sb.ToString(); + } + } +} \ No newline at end of file diff --git a/src/Tests/Compatibility/ApiTests.cs b/src/Tests/Compatibility/ApiTests.cs new file mode 100644 index 00000000..2c2fc8b3 --- /dev/null +++ b/src/Tests/Compatibility/ApiTests.cs @@ -0,0 +1,260 @@ +#pragma warning disable CS0618 +using Microsoft.VisualStudio.TestTools.UnitTesting; +using PDFtoImage.Tests; +using System; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using static PDFtoImage.Compatibility.Conversion; +using static PDFtoImage.Tests.TestUtils; + +namespace Tests.Compatibility +{ + [TestClass] + public class ApiTests : TestBase + { + [TestMethod] + public void SaveWebpStringNullException() + { + Assert.ThrowsException(() => SaveWebp((string)null!, (string)null!)); + } + + [TestMethod] + public void SaveWebpStreamNullException() + { + Assert.ThrowsException(() => SaveWebp((Stream)null!, (string)null!)); + } + + [TestMethod] + public void SavePngStringNullException() + { + Assert.ThrowsException(() => SavePng((string)null!, (string)null!)); + } + + [TestMethod] + public void SavePngStreamNullException() + { + Assert.ThrowsException(() => SavePng((Stream)null!, (string)null!)); + } + + [TestMethod] + public void SaveJpegStringNullException() + { + Assert.ThrowsException(() => SaveJpeg((string)null!, (string)null!)); + } + + [TestMethod] + public void SaveJpegStreamNullException() + { + Assert.ThrowsException(() => SaveJpeg((Stream)null!, (string)null!)); + } + + [TestMethod] + public void ToImagePdfStringNullException() + { + Assert.ThrowsException(() => ToImage((string)null!)); + } + + [TestMethod] + public void ToImagePdfArrayNullException() + { + Assert.ThrowsException(() => ToImage((byte[])null!)); + } + + [TestMethod] + public void ToImagePdfStreamNullException() + { + Assert.ThrowsException(() => ToImage((Stream)null!)); + } + + [TestMethod] + public void ToImagesPdfStringNullException() + { + Assert.ThrowsException(() => ToImages((string)null!).ToList()); + } + + [TestMethod] + public void ToImagesPdfArrayNullException() + { + Assert.ThrowsException(() => ToImages((byte[])null!).ToList()); + } + + [TestMethod] + public void ToImagesPdfStreamNullException() + { + Assert.ThrowsException(() => ToImages((Stream)null!).ToList()); + } + +#if NET6_0_OR_GREATER + [TestMethod] + public async Task ToImagesAsyncPdfStringNullException() + { + await Assert.ThrowsExceptionAsync(async () => + { + await foreach (var page in ToImagesAsync((string)null!)) + { + } + }); + } + + [TestMethod] + public async Task ToImagesAsyncPdfArrayNullException() + { + await Assert.ThrowsExceptionAsync(async () => + { + await foreach (var page in ToImagesAsync((byte[])null!)) + { + } + }); + } + + [TestMethod] + public async Task ToImagesAsyncPdfStreamNullException() + { + await Assert.ThrowsExceptionAsync(async () => + { + await foreach (var page in ToImagesAsync((Stream)null!)) + { + } + }); + } +#endif + + [TestMethod] + public void ToImageStreamLeaveOpenDefault() + { + using var inputStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + Assert.IsTrue(inputStream.CanRead); + + ToImage(inputStream); + Assert.IsFalse(inputStream.CanRead, "The stream should be closed when calling the default overload."); + } + + [TestMethod] + public void ToImageStreamLeaveOpenFalse() + { + using var inputStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + Assert.IsTrue(inputStream.CanRead); + + ToImage(inputStream, false); + Assert.IsFalse(inputStream.CanRead, "The stream should be closed when calling leaveOpen with false."); + } + + [TestMethod] + public void ToImageStreamLeaveOpenTrue() + { + using var inputStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + Assert.IsTrue(inputStream.CanRead); + + ToImage(inputStream, true); + Assert.IsTrue(inputStream.CanRead, "The stream should be open when calling leaveOpen with true."); + } + + [TestMethod] + public void ToImagesStreamLeaveOpenDefault() + { + using var inputStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + Assert.IsTrue(inputStream.CanRead); + + var result = ToImages(inputStream); + Assert.IsTrue(inputStream.CanRead, "The stream should be open as long as the iterator is not used yet."); + + foreach (var _ in result) ; + Assert.IsFalse(inputStream.CanRead, "The stream should be closed when calling the default overload."); + } + + [TestMethod] + public void ToImagesStreamLeaveOpenFalse() + { + using var inputStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + Assert.IsTrue(inputStream.CanRead); + + var result = ToImages(inputStream, false); + Assert.IsTrue(inputStream.CanRead, "The stream should be open as long as the iterator is not used yet."); + + foreach (var _ in result) ; + Assert.IsFalse(inputStream.CanRead, "The stream should be closed when calling leaveOpen with false."); + } + + [TestMethod] + public void ToImagesStreamLeaveOpenTrue() + { + using var inputStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + Assert.IsTrue(inputStream.CanRead); + + var result = ToImages(inputStream, true); + Assert.IsTrue(inputStream.CanRead, "The stream should be open as long as the iterator is not used yet."); + + foreach (var _ in result) ; + Assert.IsTrue(inputStream.CanRead, "The stream should be open when calling leaveOpen with true."); + } + +#if NET6_0_OR_GREATER + [TestMethod] + public async Task ToImagesAsyncStreamLeaveOpenDefault() + { + using var inputStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + Assert.IsTrue(inputStream.CanRead); + + var result = ToImagesAsync(inputStream); + Assert.IsTrue(inputStream.CanRead, "The stream should be open as long as the iterator is not used yet."); + + await foreach (var _ in result) ; + Assert.IsFalse(inputStream.CanRead, "The stream should be closed when calling the default overload."); + } + + [TestMethod] + public async Task ToImagesAsyncStreamLeaveOpenFalse() + { + using var inputStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + Assert.IsTrue(inputStream.CanRead); + + var result = ToImagesAsync(inputStream, false); + Assert.IsTrue(inputStream.CanRead, "The stream should be open as long as the iterator is not used yet."); + + await foreach (var _ in result) ; + Assert.IsFalse(inputStream.CanRead, "The stream should be closed when calling leaveOpen with false."); + } + + [TestMethod] + public async Task ToImagesAsyncStreamLeaveOpenTrue() + { + using var inputStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + Assert.IsTrue(inputStream.CanRead); + + var result = ToImagesAsync(inputStream, true); + Assert.IsTrue(inputStream.CanRead, "The stream should be open as long as the iterator is not used yet."); + + await foreach (var _ in result) ; + Assert.IsTrue(inputStream.CanRead, "The stream should be open when calling leaveOpen with true."); + } +#endif + + [TestMethod] + public void StreamMultipleCallsLeaveOpen() + { + using var inputStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + Assert.IsTrue(inputStream.CanRead); + + PDFtoImage.Conversion.GetPageCount(inputStream, true); + Assert.IsTrue(inputStream.CanRead, "The stream should be open when calling leaveOpen with true."); + + PDFtoImage.Conversion.GetPageSizes(inputStream, true); + Assert.IsTrue(inputStream.CanRead, "The stream should be open when calling leaveOpen with true."); + + var image1 = ToImage(inputStream, true); + Assert.IsTrue(inputStream.CanRead, "The stream should be open when calling leaveOpen with true."); + + var image2 = ToImage(inputStream, true); + Assert.IsTrue(inputStream.CanRead, "The stream should be open when calling leaveOpen with true."); + + Assert.IsTrue(image1.ByteCount > 0, "The rendered image should have content."); + Assert.AreEqual(image1.ByteCount, image2.ByteCount, "Both images should be equal (in byte size)."); + + PDFtoImage.Conversion.GetPageSizes(inputStream, false); + Assert.IsFalse(inputStream.CanRead, "The stream should be closed when calling leaveOpen with false."); + + Assert.ThrowsException(() => PDFtoImage.Conversion.GetPageCount(inputStream, false), "The stream should be closed and throw an exception."); + } + } +} \ No newline at end of file diff --git a/src/Tests/Compatibility/AspectRatioTests.cs b/src/Tests/Compatibility/AspectRatioTests.cs new file mode 100644 index 00000000..b16a1a45 --- /dev/null +++ b/src/Tests/Compatibility/AspectRatioTests.cs @@ -0,0 +1,414 @@ +#pragma warning disable CS0618 +using Microsoft.VisualStudio.TestTools.UnitTesting; +using PDFtoImage.Tests; +using System.IO; +using static PDFtoImage.Compatibility.Conversion; +using static PDFtoImage.Tests.TestUtils; + +namespace Tests.Compatibility +{ + [TestClass] + public class AspectRatioTests : TestBase + { + [TestMethod] + [DataRow("hundesteuer-anmeldung.pdf")] + [DataRow("hundesteuer-anmeldung.pdf", 100, null, null)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, null, null)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, null, null)] + [DataRow("hundesteuer-anmeldung.pdf", null, 100, null)] + [DataRow("hundesteuer-anmeldung.pdf", null, 1000, null)] + [DataRow("hundesteuer-anmeldung.pdf", null, 2000, null)] + [DataRow("hundesteuer-anmeldung.pdf", 100, 100, null)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, 1000, null)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, 2000, null)] + [DataRow("hundesteuer-anmeldung.pdf", null, null, 96)] + [DataRow("hundesteuer-anmeldung.pdf", null, null, 300)] + [DataRow("hundesteuer-anmeldung.pdf", null, null, 600)] + [DataRow("hundesteuer-anmeldung.pdf", 100, null, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 100, null, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 100, null, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, null, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, null, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, null, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, null, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, null, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, null, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", null, 100, 96)] + [DataRow("hundesteuer-anmeldung.pdf", null, 100, 300)] + [DataRow("hundesteuer-anmeldung.pdf", null, 100, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", null, 1000, 96)] + [DataRow("hundesteuer-anmeldung.pdf", null, 1000, 300)] + [DataRow("hundesteuer-anmeldung.pdf", null, 1000, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", null, 2000, 96)] + [DataRow("hundesteuer-anmeldung.pdf", null, 2000, 300)] + [DataRow("hundesteuer-anmeldung.pdf", null, 2000, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", 100, 100, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 100, 100, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 100, 100, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, 1000, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, 1000, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, 1000, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, 2000, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, 2000, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, 2000, 1200)] + + [DataRow("SocialPreview.pdf")] + [DataRow("SocialPreview.pdf", 100, null, null)] + [DataRow("SocialPreview.pdf", 1000, null, null)] + [DataRow("SocialPreview.pdf", 2000, null, null)] + [DataRow("SocialPreview.pdf", null, 100, null)] + [DataRow("SocialPreview.pdf", null, 1000, null)] + [DataRow("SocialPreview.pdf", null, 2000, null)] + [DataRow("SocialPreview.pdf", 100, 100, null)] + [DataRow("SocialPreview.pdf", 1000, 1000, null)] + [DataRow("SocialPreview.pdf", 2000, 2000, null)] + [DataRow("SocialPreview.pdf", null, null, 96)] + [DataRow("SocialPreview.pdf", null, null, 300)] + [DataRow("SocialPreview.pdf", null, null, 600)] + [DataRow("SocialPreview.pdf", 100, null, 96)] + [DataRow("SocialPreview.pdf", 100, null, 300)] + [DataRow("SocialPreview.pdf", 100, null, 1200)] + [DataRow("SocialPreview.pdf", 1000, null, 96)] + [DataRow("SocialPreview.pdf", 1000, null, 300)] + [DataRow("SocialPreview.pdf", 1000, null, 1200)] + [DataRow("SocialPreview.pdf", 2000, null, 96)] + [DataRow("SocialPreview.pdf", 2000, null, 300)] + [DataRow("SocialPreview.pdf", 2000, null, 1200)] + [DataRow("SocialPreview.pdf", null, 100, 96)] + [DataRow("SocialPreview.pdf", null, 100, 300)] + [DataRow("SocialPreview.pdf", null, 100, 1200)] + [DataRow("SocialPreview.pdf", null, 1000, 96)] + [DataRow("SocialPreview.pdf", null, 1000, 300)] + [DataRow("SocialPreview.pdf", null, 1000, 1200)] + [DataRow("SocialPreview.pdf", null, 2000, 96)] + [DataRow("SocialPreview.pdf", null, 2000, 300)] + [DataRow("SocialPreview.pdf", null, 2000, 1200)] + [DataRow("SocialPreview.pdf", 100, 100, 96)] + [DataRow("SocialPreview.pdf", 100, 100, 300)] + [DataRow("SocialPreview.pdf", 100, 100, 1200)] + [DataRow("SocialPreview.pdf", 1000, 1000, 96)] + [DataRow("SocialPreview.pdf", 1000, 1000, 300)] + [DataRow("SocialPreview.pdf", 1000, 1000, 1200)] + [DataRow("SocialPreview.pdf", 2000, 2000, 96)] + [DataRow("SocialPreview.pdf", 2000, 2000, 300)] + [DataRow("SocialPreview.pdf", 2000, 2000, 1200)] + + [DataRow("Wikimedia_Commons_web.pdf")] + [DataRow("Wikimedia_Commons_web.pdf", 100, null, null)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, null, null)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, null, null)] + [DataRow("Wikimedia_Commons_web.pdf", null, 100, null)] + [DataRow("Wikimedia_Commons_web.pdf", null, 1000, null)] + [DataRow("Wikimedia_Commons_web.pdf", null, 2000, null)] + [DataRow("Wikimedia_Commons_web.pdf", 100, 100, null)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, 1000, null)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, 2000, null)] + [DataRow("Wikimedia_Commons_web.pdf", null, null, 96)] + [DataRow("Wikimedia_Commons_web.pdf", null, null, 300)] + [DataRow("Wikimedia_Commons_web.pdf", null, null, 600)] + [DataRow("Wikimedia_Commons_web.pdf", 100, null, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 100, null, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 100, null, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, null, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, null, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, null, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, null, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, null, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, null, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", null, 100, 96)] + [DataRow("Wikimedia_Commons_web.pdf", null, 100, 300)] + [DataRow("Wikimedia_Commons_web.pdf", null, 100, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", null, 1000, 96)] + [DataRow("Wikimedia_Commons_web.pdf", null, 1000, 300)] + [DataRow("Wikimedia_Commons_web.pdf", null, 1000, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", null, 2000, 96)] + [DataRow("Wikimedia_Commons_web.pdf", null, 2000, 300)] + [DataRow("Wikimedia_Commons_web.pdf", null, 2000, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", 100, 100, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 100, 100, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 100, 100, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, 1000, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, 1000, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, 1000, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, 2000, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, 2000, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, 2000, 1200)] + public void WithoutAspectRatio(string fileName, int? width = null, int? height = null, int? dpi = null) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "AspectRatio", GetExpectedFilename(fileName, "jpg", width, height, dpi, false)); + + using var inputStream = GetInputStream(Path.Combine("Assets", fileName)); + using var outputStream = CreateOutputStream(expectedPath); + + if (dpi != null) + SaveJpeg(outputStream, inputStream, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: false, dpi: dpi.Value); + else + SaveJpeg(outputStream, inputStream, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: false); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow("hundesteuer-anmeldung.pdf")] + [DataRow("hundesteuer-anmeldung.pdf", 100, null, null)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, null, null)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, null, null)] + [DataRow("hundesteuer-anmeldung.pdf", null, 100, null)] + [DataRow("hundesteuer-anmeldung.pdf", null, 1000, null)] + [DataRow("hundesteuer-anmeldung.pdf", null, 2000, null)] + [DataRow("hundesteuer-anmeldung.pdf", 100, 100, null)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, 1000, null)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, 2000, null)] + [DataRow("hundesteuer-anmeldung.pdf", null, null, 96)] + [DataRow("hundesteuer-anmeldung.pdf", null, null, 300)] + [DataRow("hundesteuer-anmeldung.pdf", null, null, 600)] + [DataRow("hundesteuer-anmeldung.pdf", 100, null, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 100, null, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 100, null, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, null, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, null, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, null, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, null, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, null, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, null, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", null, 100, 96)] + [DataRow("hundesteuer-anmeldung.pdf", null, 100, 300)] + [DataRow("hundesteuer-anmeldung.pdf", null, 100, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", null, 1000, 96)] + [DataRow("hundesteuer-anmeldung.pdf", null, 1000, 300)] + [DataRow("hundesteuer-anmeldung.pdf", null, 1000, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", null, 2000, 96)] + [DataRow("hundesteuer-anmeldung.pdf", null, 2000, 300)] + [DataRow("hundesteuer-anmeldung.pdf", null, 2000, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", 100, 100, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 100, 100, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 100, 100, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, 1000, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, 1000, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, 1000, 1200)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, 2000, 96)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, 2000, 300)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, 2000, 1200)] + + [DataRow("SocialPreview.pdf")] + [DataRow("SocialPreview.pdf", 100, null, null)] + [DataRow("SocialPreview.pdf", 1000, null, null)] + [DataRow("SocialPreview.pdf", 2000, null, null)] + [DataRow("SocialPreview.pdf", null, 100, null)] + [DataRow("SocialPreview.pdf", null, 1000, null)] + [DataRow("SocialPreview.pdf", null, 2000, null)] + [DataRow("SocialPreview.pdf", 100, 100, null)] + [DataRow("SocialPreview.pdf", 1000, 1000, null)] + [DataRow("SocialPreview.pdf", 2000, 2000, null)] + [DataRow("SocialPreview.pdf", null, null, 96)] + [DataRow("SocialPreview.pdf", null, null, 300)] + [DataRow("SocialPreview.pdf", null, null, 600)] + [DataRow("SocialPreview.pdf", 100, null, 96)] + [DataRow("SocialPreview.pdf", 100, null, 300)] + [DataRow("SocialPreview.pdf", 100, null, 1200)] + [DataRow("SocialPreview.pdf", 1000, null, 96)] + [DataRow("SocialPreview.pdf", 1000, null, 300)] + [DataRow("SocialPreview.pdf", 1000, null, 1200)] + [DataRow("SocialPreview.pdf", 2000, null, 96)] + [DataRow("SocialPreview.pdf", 2000, null, 300)] + [DataRow("SocialPreview.pdf", 2000, null, 1200)] + [DataRow("SocialPreview.pdf", null, 100, 96)] + [DataRow("SocialPreview.pdf", null, 100, 300)] + [DataRow("SocialPreview.pdf", null, 100, 1200)] + [DataRow("SocialPreview.pdf", null, 1000, 96)] + [DataRow("SocialPreview.pdf", null, 1000, 300)] + [DataRow("SocialPreview.pdf", null, 1000, 1200)] + [DataRow("SocialPreview.pdf", null, 2000, 96)] + [DataRow("SocialPreview.pdf", null, 2000, 300)] + [DataRow("SocialPreview.pdf", null, 2000, 1200)] + [DataRow("SocialPreview.pdf", 100, 100, 96)] + [DataRow("SocialPreview.pdf", 100, 100, 300)] + [DataRow("SocialPreview.pdf", 100, 100, 1200)] + [DataRow("SocialPreview.pdf", 1000, 1000, 96)] + [DataRow("SocialPreview.pdf", 1000, 1000, 300)] + [DataRow("SocialPreview.pdf", 1000, 1000, 1200)] + [DataRow("SocialPreview.pdf", 2000, 2000, 96)] + [DataRow("SocialPreview.pdf", 2000, 2000, 300)] + [DataRow("SocialPreview.pdf", 2000, 2000, 1200)] + + [DataRow("Wikimedia_Commons_web.pdf")] + [DataRow("Wikimedia_Commons_web.pdf", 100, null, null)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, null, null)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, null, null)] + [DataRow("Wikimedia_Commons_web.pdf", null, 100, null)] + [DataRow("Wikimedia_Commons_web.pdf", null, 1000, null)] + [DataRow("Wikimedia_Commons_web.pdf", null, 2000, null)] + [DataRow("Wikimedia_Commons_web.pdf", 100, 100, null)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, 1000, null)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, 2000, null)] + [DataRow("Wikimedia_Commons_web.pdf", null, null, 96)] + [DataRow("Wikimedia_Commons_web.pdf", null, null, 300)] + [DataRow("Wikimedia_Commons_web.pdf", null, null, 600)] + [DataRow("Wikimedia_Commons_web.pdf", 100, null, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 100, null, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 100, null, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, null, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, null, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, null, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, null, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, null, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, null, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", null, 100, 96)] + [DataRow("Wikimedia_Commons_web.pdf", null, 100, 300)] + [DataRow("Wikimedia_Commons_web.pdf", null, 100, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", null, 1000, 96)] + [DataRow("Wikimedia_Commons_web.pdf", null, 1000, 300)] + [DataRow("Wikimedia_Commons_web.pdf", null, 1000, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", null, 2000, 96)] + [DataRow("Wikimedia_Commons_web.pdf", null, 2000, 300)] + [DataRow("Wikimedia_Commons_web.pdf", null, 2000, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", 100, 100, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 100, 100, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 100, 100, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, 1000, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, 1000, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, 1000, 1200)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, 2000, 96)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, 2000, 300)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, 2000, 1200)] + public void WithAspectRatio(string fileName, int? width = null, int? height = null, int? dpi = null) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "AspectRatio", GetExpectedFilename(fileName, "jpg", width, height, dpi, true)); + + using var inputStream = GetInputStream(Path.Combine("Assets", fileName)); + using var outputStream = CreateOutputStream(expectedPath); + + if (dpi != null) + SaveJpeg(outputStream, inputStream, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: true, dpi: dpi.Value); + else + SaveJpeg(outputStream, inputStream, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: true); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow("hundesteuer-anmeldung.pdf", 100, null, false)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, null, false)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, null, false)] + [DataRow("hundesteuer-anmeldung.pdf", null, 100, false)] + [DataRow("hundesteuer-anmeldung.pdf", null, 1000, false)] + [DataRow("hundesteuer-anmeldung.pdf", null, 2000, false)] + [DataRow("hundesteuer-anmeldung.pdf", 100, 100, false)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, 1000, false)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, 2000, false)] + [DataRow("hundesteuer-anmeldung.pdf", 100, null, true)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, null, true)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, null, true)] + [DataRow("hundesteuer-anmeldung.pdf", null, 100, true)] + [DataRow("hundesteuer-anmeldung.pdf", null, 1000, true)] + [DataRow("hundesteuer-anmeldung.pdf", null, 2000, true)] + [DataRow("hundesteuer-anmeldung.pdf", 100, 100, true)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, 1000, true)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, 2000, true)] + + [DataRow("SocialPreview.pdf", 100, null, false)] + [DataRow("SocialPreview.pdf", 1000, null, false)] + [DataRow("SocialPreview.pdf", 2000, null, false)] + [DataRow("SocialPreview.pdf", null, 100, false)] + [DataRow("SocialPreview.pdf", null, 1000, false)] + [DataRow("SocialPreview.pdf", null, 2000, false)] + [DataRow("SocialPreview.pdf", 100, 100, false)] + [DataRow("SocialPreview.pdf", 1000, 1000, false)] + [DataRow("SocialPreview.pdf", 2000, 2000, false)] + [DataRow("SocialPreview.pdf", 100, null, true)] + [DataRow("SocialPreview.pdf", 1000, null, true)] + [DataRow("SocialPreview.pdf", 2000, null, true)] + [DataRow("SocialPreview.pdf", null, 100, true)] + [DataRow("SocialPreview.pdf", null, 1000, true)] + [DataRow("SocialPreview.pdf", null, 2000, true)] + [DataRow("SocialPreview.pdf", 100, 100, true)] + [DataRow("SocialPreview.pdf", 1000, 1000, true)] + [DataRow("SocialPreview.pdf", 2000, 2000, true)] + + [DataRow("Wikimedia_Commons_web.pdf", 100, null, false)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, null, false)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, null, false)] + [DataRow("Wikimedia_Commons_web.pdf", null, 100, false)] + [DataRow("Wikimedia_Commons_web.pdf", null, 1000, false)] + [DataRow("Wikimedia_Commons_web.pdf", null, 2000, false)] + [DataRow("Wikimedia_Commons_web.pdf", 100, 100, false)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, 1000, false)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, 2000, false)] + [DataRow("Wikimedia_Commons_web.pdf", 100, null, true)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, null, true)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, null, true)] + [DataRow("Wikimedia_Commons_web.pdf", null, 100, true)] + [DataRow("Wikimedia_Commons_web.pdf", null, 1000, true)] + [DataRow("Wikimedia_Commons_web.pdf", null, 2000, true)] + [DataRow("Wikimedia_Commons_web.pdf", 100, 100, true)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, 1000, true)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, 2000, true)] + public void IgnoreDpi(string fileName, int? width = null, int? height = null, bool withAspectRatio = false) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "AspectRatio", GetExpectedFilename(fileName, "jpg", width, height, 300, withAspectRatio)); + + using var inputStream = GetInputStream(Path.Combine("Assets", fileName)); + + for (int i = 72; i < 600; i += 100) + { + using var outputStream = CreateOutputStream(expectedPath); + + ToImage(inputStream, true, dpi: i, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: withAspectRatio).Encode(outputStream, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); + CompareStreams(expectedPath, outputStream); + } + } + + [TestMethod] + [DataRow("hundesteuer-anmeldung.pdf", 100, 100)] + [DataRow("hundesteuer-anmeldung.pdf", 1000, 1000)] + [DataRow("hundesteuer-anmeldung.pdf", 2000, 2000)] + [DataRow("SocialPreview.pdf", 100, 100)] + [DataRow("SocialPreview.pdf", 1000, 1000)] + [DataRow("SocialPreview.pdf", 2000, 2000)] + [DataRow("Wikimedia_Commons_web.pdf", 100, 100)] + [DataRow("Wikimedia_Commons_web.pdf", 1000, 1000)] + [DataRow("Wikimedia_Commons_web.pdf", 2000, 2000)] + public void IgnoreAspectRatio(string fileName, int width, int height) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "AspectRatio", GetExpectedFilename(fileName, "jpg", width, height, 300, true)); + + using var inputStream = GetInputStream(Path.Combine("Assets", fileName)); + using var outputStream1 = CreateOutputStream(expectedPath); + using var outputStream2 = CreateOutputStream(expectedPath); + + ToImage(inputStream, true, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: false).Encode(outputStream1, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); + ToImage(inputStream, true, width: width, height: height, withAnnotations: true, withFormFill: true, withAspectRatio: true).Encode(outputStream2, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); + + CompareStreams(expectedPath, outputStream1); + CompareStreams(expectedPath, outputStream2); + } + + [TestMethod] + [DataRow("hundesteuer-anmeldung.pdf", 96)] + [DataRow("hundesteuer-anmeldung.pdf", 300)] + [DataRow("hundesteuer-anmeldung.pdf", 600)] + [DataRow("SocialPreview.pdf", 96)] + [DataRow("SocialPreview.pdf", 300)] + [DataRow("SocialPreview.pdf", 600)] + [DataRow("Wikimedia_Commons_web.pdf", 96)] + [DataRow("Wikimedia_Commons_web.pdf", 300)] + [DataRow("Wikimedia_Commons_web.pdf", 600)] + public void IgnoreAspectRatioWithDpi(string fileName, int dpi) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "AspectRatio", GetExpectedFilename(fileName, "jpg", null, null, dpi, true)); + + using var inputStream = GetInputStream(Path.Combine("Assets", fileName)); + using var outputStream1 = CreateOutputStream(expectedPath); + using var outputStream2 = CreateOutputStream(expectedPath); + + ToImage(inputStream, true, dpi: dpi, withAnnotations: true, withFormFill: true, withAspectRatio: false).Encode(outputStream1, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); + ToImage(inputStream, true, dpi: dpi, withAnnotations: true, withFormFill: true, withAspectRatio: true).Encode(outputStream2, SkiaSharp.SKEncodedImageFormat.Jpeg, 100); + + CompareStreams(expectedPath, outputStream1); + CompareStreams(expectedPath, outputStream2); + } + + private static string GetExpectedFilename(string fileName, string? fileExtension, int? width, int? height, int? dpi, bool withAspectRatio) + => $"{fileName}_w={width?.ToString() ?? "null"}_h={height?.ToString() ?? "null"}_dpi={dpi?.ToString() ?? "null"}_aspectratio={withAspectRatio}{(fileExtension != null ? $".{fileExtension}" : string.Empty)}"; + } +} \ No newline at end of file diff --git a/src/Tests/Compatibility/BackgroundColorTests.cs b/src/Tests/Compatibility/BackgroundColorTests.cs new file mode 100644 index 00000000..f42b3824 --- /dev/null +++ b/src/Tests/Compatibility/BackgroundColorTests.cs @@ -0,0 +1,127 @@ +#pragma warning disable CS0618 +using Microsoft.VisualStudio.TestTools.UnitTesting; +using SkiaSharp; +using System; +using System.IO; +using static PDFtoImage.Compatibility.Conversion; +using static PDFtoImage.Tests.TestUtils; + +namespace Tests.Compatibility +{ + [TestClass] + public class BackgroundColorTests + { + [TestInitialize] + public void Initialize() + { +#if NET6_0_OR_GREATER + if (!OperatingSystem.IsWindows() && !OperatingSystem.IsLinux() && !OperatingSystem.IsMacOS()) + Assert.Inconclusive("This test must run on Windows, Linux or macOS."); +#endif + } + + [TestMethod] + [DataRow(null, DisplayName = "Default (White)")] + [DataRow((uint)0xFFFFFFFF, DisplayName = "White")] + [DataRow((uint)0x64FFFFFF, DisplayName = "White (100 alpha)")] + [DataRow((uint)0xFFFF0000, DisplayName = "Red")] + [DataRow((uint)0x64FF0000, DisplayName = "Red (100 alpha)")] + [DataRow((uint)0xFF00FF00, DisplayName = "Green")] + [DataRow((uint)0x6400FF00, DisplayName = "Green (100 alpha)")] + [DataRow((uint)0xFF0000FF, DisplayName = "Blue")] + [DataRow((uint)0x640000FF, DisplayName = "Blue (100 alpha)")] + [DataRow((uint)0xFFFFFF00, DisplayName = "Yellow")] + [DataRow((uint)0x64FFFF00, DisplayName = "Yellow (100 alpha)")] + [DataRow((uint)0xFFFF00FF, DisplayName = "Magenta")] + [DataRow((uint)0x64FF00FF, DisplayName = "Magenta (100 alpha)")] + [DataRow((uint)0xFF00FFFF, DisplayName = "Cyan")] + [DataRow((uint)0x6400FFFF, DisplayName = "Cyan (100 alpha)")] + [DataRow((uint)0xFF000000, DisplayName = "Black")] + [DataRow((uint)0x64000000, DisplayName = "Black (100 alpha)")] + [DataRow((uint)0x00FFFFFF, DisplayName = "Transparent")] + public void SaveJpegWithBackgroundColor(uint? backgroundColor) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "BackgroundColor", $"hundesteuer-anmeldung_{GetFileName(backgroundColor ?? SKColors.White)}.jpg"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (backgroundColor == null) + SaveJpeg(outputStream, inputStream, dpi: 40); + else + SaveJpeg(outputStream, inputStream, dpi: 40, backgroundColor: backgroundColor.Value); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(null, DisplayName = "Default (White)")] + [DataRow((uint)0xFFFFFFFF, DisplayName = "White")] + [DataRow((uint)0x64FFFFFF, DisplayName = "White (100 alpha)")] + [DataRow((uint)0xFFFF0000, DisplayName = "Red")] + [DataRow((uint)0x64FF0000, DisplayName = "Red (100 alpha)")] + [DataRow((uint)0xFF00FF00, DisplayName = "Green")] + [DataRow((uint)0x6400FF00, DisplayName = "Green (100 alpha)")] + [DataRow((uint)0xFF0000FF, DisplayName = "Blue")] + [DataRow((uint)0x640000FF, DisplayName = "Blue (100 alpha)")] + [DataRow((uint)0xFFFFFF00, DisplayName = "Yellow")] + [DataRow((uint)0x64FFFF00, DisplayName = "Yellow (100 alpha)")] + [DataRow((uint)0xFFFF00FF, DisplayName = "Magenta")] + [DataRow((uint)0x64FF00FF, DisplayName = "Magenta (100 alpha)")] + [DataRow((uint)0xFF00FFFF, DisplayName = "Cyan")] + [DataRow((uint)0x6400FFFF, DisplayName = "Cyan (100 alpha)")] + [DataRow((uint)0xFF000000, DisplayName = "Black")] + [DataRow((uint)0x64000000, DisplayName = "Black (100 alpha)")] + [DataRow((uint)0x00FFFFFF, DisplayName = "Transparent")] + public void SavePngWithBackgroundColor(uint? backgroundColor) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "BackgroundColor", $"hundesteuer-anmeldung_{GetFileName(backgroundColor ?? SKColors.White)}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (backgroundColor == null) + SavePng(outputStream, inputStream, dpi: 40); + else + SavePng(outputStream, inputStream, dpi: 40, backgroundColor: backgroundColor.Value); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(null, DisplayName = "Default (White)")] + [DataRow((uint)0xFFFFFFFF, DisplayName = "White")] + [DataRow((uint)0x64FFFFFF, DisplayName = "White (100 alpha)")] + [DataRow((uint)0xFFFF0000, DisplayName = "Red")] + [DataRow((uint)0x64FF0000, DisplayName = "Red (100 alpha)")] + [DataRow((uint)0xFF00FF00, DisplayName = "Green")] + [DataRow((uint)0x6400FF00, DisplayName = "Green (100 alpha)")] + [DataRow((uint)0xFF0000FF, DisplayName = "Blue")] + [DataRow((uint)0x640000FF, DisplayName = "Blue (100 alpha)")] + [DataRow((uint)0xFFFFFF00, DisplayName = "Yellow")] + [DataRow((uint)0x64FFFF00, DisplayName = "Yellow (100 alpha)")] + [DataRow((uint)0xFFFF00FF, DisplayName = "Magenta")] + [DataRow((uint)0x64FF00FF, DisplayName = "Magenta (100 alpha)")] + [DataRow((uint)0xFF00FFFF, DisplayName = "Cyan")] + [DataRow((uint)0x6400FFFF, DisplayName = "Cyan (100 alpha)")] + [DataRow((uint)0xFF000000, DisplayName = "Black")] + [DataRow((uint)0x64000000, DisplayName = "Black (100 alpha)")] + [DataRow((uint)0x00FFFFFF, DisplayName = "Transparent")] + public void SaveWebpWithBackgroundColor(uint? backgroundColor) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "BackgroundColor", $"hundesteuer-anmeldung_{GetFileName(backgroundColor ?? SKColors.White)}.webp"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (backgroundColor == null) + SaveWebp(outputStream, inputStream, dpi: 40); + else + SaveWebp(outputStream, inputStream, dpi: 40, backgroundColor: backgroundColor.Value); + + CompareStreams(expectedPath, outputStream); + } + + private static string GetFileName(SKColor backgroundColor) => backgroundColor.ToString(); + } +} \ No newline at end of file diff --git a/src/Tests/Compatibility/ComparisonTests.cs b/src/Tests/Compatibility/ComparisonTests.cs new file mode 100644 index 00000000..4c9dc9b9 --- /dev/null +++ b/src/Tests/Compatibility/ComparisonTests.cs @@ -0,0 +1,445 @@ +#pragma warning disable CS0618 +using Microsoft.VisualStudio.TestTools.UnitTesting; +using PDFtoImage.Tests; +using SkiaSharp; +using System; +using System.IO; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; +using static PDFtoImage.Compatibility.Conversion; +using static PDFtoImage.Tests.TestUtils; + +namespace Tests.Compatibility +{ + [TestClass] + public class ComparisonTests : TestBase + { + [TestMethod] + [DataRow(0, DisplayName = "Page 1")] + [DataRow(1, DisplayName = "Page 2")] + [DataRow(2, DisplayName = "Page 3")] + [DataRow(3, DisplayName = "Page 4")] + [DataRow(4, DisplayName = "Page 5")] + [DataRow(5, DisplayName = "Page 6")] + [DataRow(6, DisplayName = "Page 7")] + [DataRow(7, DisplayName = "Page 8")] + [DataRow(8, DisplayName = "Page 9")] + [DataRow(9, DisplayName = "Page 10")] + [DataRow(10, DisplayName = "Page 11")] + [DataRow(11, DisplayName = "Page 12")] + [DataRow(12, DisplayName = "Page 13")] + [DataRow(13, DisplayName = "Page 14")] + [DataRow(14, DisplayName = "Page 15")] + [DataRow(15, DisplayName = "Page 16")] + [DataRow(16, DisplayName = "Page 17")] + [DataRow(17, DisplayName = "Page 18")] + [DataRow(18, DisplayName = "Page 19")] + [DataRow(19, DisplayName = "Page 20")] + [DataRow(0, true, DisplayName = "Page 1 (with annotations)")] + [DataRow(1, true, DisplayName = "Page 2 (with annotations)")] + [DataRow(2, true, DisplayName = "Page 3 (with annotations)")] + [DataRow(3, true, DisplayName = "Page 4 (with annotations)")] + [DataRow(4, true, DisplayName = "Page 5 (with annotations)")] + [DataRow(5, true, DisplayName = "Page 6 (with annotations)")] + [DataRow(6, true, DisplayName = "Page 7 (with annotations)")] + [DataRow(7, true, DisplayName = "Page 8 (with annotations)")] + [DataRow(8, true, DisplayName = "Page 9 (with annotations)")] + [DataRow(9, true, DisplayName = "Page 10 (with annotations)")] + [DataRow(10, true, DisplayName = "Page 11 (with annotations)")] + [DataRow(11, true, DisplayName = "Page 12 (with annotations)")] + [DataRow(12, true, DisplayName = "Page 13 (with annotations)")] + [DataRow(13, true, DisplayName = "Page 14 (with annotations)")] + [DataRow(14, true, DisplayName = "Page 15 (with annotations)")] + [DataRow(15, true, DisplayName = "Page 16 (with annotations)")] + [DataRow(16, true, DisplayName = "Page 17 (with annotations)")] + [DataRow(17, true, DisplayName = "Page 18 (with annotations)")] + [DataRow(18, true, DisplayName = "Page 19 (with annotations)")] + [DataRow(19, true, DisplayName = "Page 20 (with annotations)")] + public void SaveWebpPageNumber(int page, bool withAnnotations = false) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.webp"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + SaveWebp(outputStream, inputStream, page: page, dpi: 40, withAnnotations: withAnnotations); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(false, DisplayName = "Without annotations")] + [DataRow(true, DisplayName = "With annotations")] + public void SaveWebpPages(bool withAnnotations = false) + { + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + + int page = 0; + + foreach (var image in ToImages(inputStream, dpi: 40, withAnnotations: withAnnotations)) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.webp"); + + using var outputStream = CreateOutputStream(expectedPath); + image.Encode(outputStream, SKEncodedImageFormat.Webp, 100); + + CompareStreams(expectedPath, outputStream); + + page++; + } + } + +#if NET6_0_OR_GREATER + [TestMethod] + [DataRow(false, DisplayName = "Without annotations")] + [DataRow(true, DisplayName = "With annotations")] + public async Task SaveWebpPagesAsync(bool withAnnotations = false) + { + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + + int page = 0; + + await foreach (var image in ToImagesAsync(inputStream, dpi: 40, withAnnotations: withAnnotations)) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.webp"); + + using var outputStream = CreateOutputStream(expectedPath); + image.Encode(outputStream, SKEncodedImageFormat.Webp, 100); + + CompareStreams(expectedPath, outputStream); + + page++; + } + } +#endif + + [TestMethod] + [DataRow(0, DisplayName = "Page 1")] + [DataRow(1, DisplayName = "Page 2")] + [DataRow(2, DisplayName = "Page 3")] + [DataRow(3, DisplayName = "Page 4")] + [DataRow(4, DisplayName = "Page 5")] + [DataRow(5, DisplayName = "Page 6")] + [DataRow(6, DisplayName = "Page 7")] + [DataRow(7, DisplayName = "Page 8")] + [DataRow(8, DisplayName = "Page 9")] + [DataRow(9, DisplayName = "Page 10")] + [DataRow(10, DisplayName = "Page 11")] + [DataRow(11, DisplayName = "Page 12")] + [DataRow(12, DisplayName = "Page 13")] + [DataRow(13, DisplayName = "Page 14")] + [DataRow(14, DisplayName = "Page 15")] + [DataRow(15, DisplayName = "Page 16")] + [DataRow(16, DisplayName = "Page 17")] + [DataRow(17, DisplayName = "Page 18")] + [DataRow(18, DisplayName = "Page 19")] + [DataRow(19, DisplayName = "Page 20")] + [DataRow(0, true, DisplayName = "Page 1 (with annotations)")] + [DataRow(1, true, DisplayName = "Page 2 (with annotations)")] + [DataRow(2, true, DisplayName = "Page 3 (with annotations)")] + [DataRow(3, true, DisplayName = "Page 4 (with annotations)")] + [DataRow(4, true, DisplayName = "Page 5 (with annotations)")] + [DataRow(5, true, DisplayName = "Page 6 (with annotations)")] + [DataRow(6, true, DisplayName = "Page 7 (with annotations)")] + [DataRow(7, true, DisplayName = "Page 8 (with annotations)")] + [DataRow(8, true, DisplayName = "Page 9 (with annotations)")] + [DataRow(9, true, DisplayName = "Page 10 (with annotations)")] + [DataRow(10, true, DisplayName = "Page 11 (with annotations)")] + [DataRow(11, true, DisplayName = "Page 12 (with annotations)")] + [DataRow(12, true, DisplayName = "Page 13 (with annotations)")] + [DataRow(13, true, DisplayName = "Page 14 (with annotations)")] + [DataRow(14, true, DisplayName = "Page 15 (with annotations)")] + [DataRow(15, true, DisplayName = "Page 16 (with annotations)")] + [DataRow(16, true, DisplayName = "Page 17 (with annotations)")] + [DataRow(17, true, DisplayName = "Page 18 (with annotations)")] + [DataRow(18, true, DisplayName = "Page 19 (with annotations)")] + [DataRow(19, true, DisplayName = "Page 20 (with annotations)")] + public void SavePngPageNumber(int page, bool withAnnotations = false) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + SavePng(outputStream, inputStream, page: page, dpi: 40, withAnnotations: withAnnotations); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(false, DisplayName = "Without annotations")] + [DataRow(true, DisplayName = "With annotations")] + public void SavePngPages(bool withAnnotations = false) + { + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + + int page = 0; + + foreach (var image in ToImages(inputStream, dpi: 40, withAnnotations: withAnnotations)) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.png"); + + using var outputStream = CreateOutputStream(expectedPath); + image.Encode(outputStream, SKEncodedImageFormat.Png, 100); + + CompareStreams(expectedPath, outputStream); + + page++; + } + } + +#if NET6_0_OR_GREATER + [TestMethod] + [DataRow(false, DisplayName = "Without annotations")] + [DataRow(true, DisplayName = "With annotations")] + public async Task SavePngPagesAsync(bool withAnnotations = false) + { + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + + int page = 0; + + await foreach (var image in ToImagesAsync(inputStream, dpi: 40, withAnnotations: withAnnotations)) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.png"); + + using var outputStream = CreateOutputStream(expectedPath); + image.Encode(outputStream, SKEncodedImageFormat.Png, 100); + + CompareStreams(expectedPath, outputStream); + + page++; + } + } +#endif + + [TestMethod] + [DataRow(0, DisplayName = "Page 1")] + [DataRow(1, DisplayName = "Page 2")] + [DataRow(2, DisplayName = "Page 3")] + [DataRow(3, DisplayName = "Page 4")] + [DataRow(4, DisplayName = "Page 5")] + [DataRow(5, DisplayName = "Page 6")] + [DataRow(6, DisplayName = "Page 7")] + [DataRow(7, DisplayName = "Page 8")] + [DataRow(8, DisplayName = "Page 9")] + [DataRow(9, DisplayName = "Page 10")] + [DataRow(10, DisplayName = "Page 11")] + [DataRow(11, DisplayName = "Page 12")] + [DataRow(12, DisplayName = "Page 13")] + [DataRow(13, DisplayName = "Page 14")] + [DataRow(14, DisplayName = "Page 15")] + [DataRow(15, DisplayName = "Page 16")] + [DataRow(16, DisplayName = "Page 17")] + [DataRow(17, DisplayName = "Page 18")] + [DataRow(18, DisplayName = "Page 19")] + [DataRow(19, DisplayName = "Page 20")] + [DataRow(0, true, DisplayName = "Page 1 (with annotations)")] + [DataRow(1, true, DisplayName = "Page 2 (with annotations)")] + [DataRow(2, true, DisplayName = "Page 3 (with annotations)")] + [DataRow(3, true, DisplayName = "Page 4 (with annotations)")] + [DataRow(4, true, DisplayName = "Page 5 (with annotations)")] + [DataRow(5, true, DisplayName = "Page 6 (with annotations)")] + [DataRow(6, true, DisplayName = "Page 7 (with annotations)")] + [DataRow(7, true, DisplayName = "Page 8 (with annotations)")] + [DataRow(8, true, DisplayName = "Page 9 (with annotations)")] + [DataRow(9, true, DisplayName = "Page 10 (with annotations)")] + [DataRow(10, true, DisplayName = "Page 11 (with annotations)")] + [DataRow(11, true, DisplayName = "Page 12 (with annotations)")] + [DataRow(12, true, DisplayName = "Page 13 (with annotations)")] + [DataRow(13, true, DisplayName = "Page 14 (with annotations)")] + [DataRow(14, true, DisplayName = "Page 15 (with annotations)")] + [DataRow(15, true, DisplayName = "Page 16 (with annotations)")] + [DataRow(16, true, DisplayName = "Page 17 (with annotations)")] + [DataRow(17, true, DisplayName = "Page 18 (with annotations)")] + [DataRow(18, true, DisplayName = "Page 19 (with annotations)")] + [DataRow(19, true, DisplayName = "Page 20 (with annotations)")] + public void SaveJpegPageNumber(int page, bool withAnnotations = false) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.jpg"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + SaveJpeg(outputStream, inputStream, page: page, dpi: 40, withAnnotations: withAnnotations); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(false, DisplayName = "Without annotations")] + [DataRow(true, DisplayName = "With annotations")] + public void SaveJpegPages(bool withAnnotations = false) + { + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + + int page = 0; + + foreach (var image in ToImages(inputStream, dpi: 40, withAnnotations: withAnnotations)) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.jpg"); + + using var outputStream = CreateOutputStream(expectedPath); + image.Encode(outputStream, SKEncodedImageFormat.Jpeg, 100); + + CompareStreams(expectedPath, outputStream); + + page++; + } + } + +#if NET6_0_OR_GREATER + [TestMethod] + [DataRow(false, DisplayName = "Without annotations")] + [DataRow(true, DisplayName = "With annotations")] + public async Task SaveJpegPagesAsync(bool withAnnotations = false) + { + using var inputStream = GetInputStream(Path.Combine("Assets", "Wikimedia_Commons_web.pdf")); + + int page = 0; + + await foreach (var image in ToImagesAsync(inputStream, dpi: 40, withAnnotations: withAnnotations)) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"Wikimedia_Commons_web_{page}{(withAnnotations ? "_ANNOT" : string.Empty)}.jpg"); + + using var outputStream = CreateOutputStream(expectedPath); + image.Encode(outputStream, SKEncodedImageFormat.Jpeg, 100); + + CompareStreams(expectedPath, outputStream); + + page++; + } + } +#endif + + [TestMethod] + [DataRow(10, DisplayName = "10 DPI")] + [DataRow(30, DisplayName = "30 DPI")] + [DataRow(100, DisplayName = "100 DPI")] + [DataRow(300, DisplayName = "300 DPI")] + [DataRow(600, DisplayName = "600 DPI")] + [DataRow(1200, DisplayName = "1200 DPI")] + [DataRow(10, true, DisplayName = "10 DPI (with annotations)")] + [DataRow(30, true, DisplayName = "30 DPI (with annotations)")] + [DataRow(100, true, DisplayName = "100 DPI (with annotations)")] + [DataRow(300, true, DisplayName = "300 DPI (with annotations)")] + [DataRow(600, true, DisplayName = "600 DPI (with annotations)")] + [DataRow(1200, true, DisplayName = "1200 DPI (with annotations)")] + public void SavePngDpi(int dpi, bool withAnnotations = false) + { + using var pdfStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + using var image = ToImage(pdfStream, dpi: dpi, withAnnotations: withAnnotations); + + using var pdfStream2 = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + using var image2 = ToImage(pdfStream2, dpi: 300, withAnnotations: withAnnotations); + + Assert.IsNotNull(image); + Assert.IsTrue(Math.Abs(image.Width - image2.Width * (dpi / 300.0)) < 3); + Assert.IsTrue(Math.Abs(image.Height - image2.Height * (dpi / 300.0)) < 3); + } + + [TestMethod] + [DataRow(10, DisplayName = "10 DPI")] + [DataRow(30, DisplayName = "30 DPI")] + [DataRow(100, DisplayName = "100 DPI")] + [DataRow(300, DisplayName = "300 DPI")] + [DataRow(600, DisplayName = "600 DPI")] + [DataRow(1200, DisplayName = "1200 DPI")] + [DataRow(10, true, DisplayName = "10 DPI (with annotations)")] + [DataRow(30, true, DisplayName = "30 DPI (with annotations)")] + [DataRow(100, true, DisplayName = "100 DPI (with annotations)")] + [DataRow(300, true, DisplayName = "300 DPI (with annotations)")] + [DataRow(600, true, DisplayName = "600 DPI (with annotations)")] + [DataRow(1200, true, DisplayName = "1200 DPI (with annotations)")] + public void SavePngDpiImages(int dpi, bool withAnnotations = false) + { + using var pdfStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + using var image = ToImages(pdfStream, dpi: dpi, withAnnotations: withAnnotations).Single(); + + using var pdfStream2 = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + using var image2 = ToImages(pdfStream2, dpi: 300, withAnnotations: withAnnotations).Single(); + + Assert.IsNotNull(image); + Assert.IsTrue(Math.Abs(image.Width - image2.Width * (dpi / 300.0)) < 3); + Assert.IsTrue(Math.Abs(image.Height - image2.Height * (dpi / 300.0)) < 3); + } + +#if NET6_0_OR_GREATER + [TestMethod] + [DataRow(10, DisplayName = "10 DPI")] + [DataRow(30, DisplayName = "30 DPI")] + [DataRow(100, DisplayName = "100 DPI")] + [DataRow(300, DisplayName = "300 DPI")] + [DataRow(600, DisplayName = "600 DPI")] + [DataRow(1200, DisplayName = "1200 DPI")] + [DataRow(10, true, DisplayName = "10 DPI (with annotations)")] + [DataRow(30, true, DisplayName = "30 DPI (with annotations)")] + [DataRow(100, true, DisplayName = "100 DPI (with annotations)")] + [DataRow(300, true, DisplayName = "300 DPI (with annotations)")] + [DataRow(600, true, DisplayName = "600 DPI (with annotations)")] + [DataRow(1200, true, DisplayName = "1200 DPI (with annotations)")] + public async Task SavePngDpiImagesAsync(int dpi, bool withAnnotations = false) + { + using var pdfStream = GetInputStream(Path.Combine("Assets", "SocialPreview.pdf")); + + await foreach (var image in ToImagesAsync(pdfStream, dpi: dpi, withAnnotations: withAnnotations)) + { + Assert.IsNotNull(image); + } + } +#endif + +#if NET6_0_OR_GREATER + [TestMethod] + [DataRow("SocialPreview.pdf")] + [DataRow("hundesteuer-anmeldung.pdf")] + [DataRow("Wikimedia_Commons_web.pdf")] + public async Task ToImagesAsyncTaskCanceledException(string pdfFileName) + { + using var inputStream = GetInputStream(Path.Combine("Assets", pdfFileName)); + var token = new CancellationTokenSource(); + + await Assert.ThrowsExceptionAsync(async () => + { + token.Cancel(); + + await foreach (var image in ToImagesAsync(inputStream, dpi: 1200, cancellationToken: token.Token)) + { + } + }); + } + + [TestMethod] + [DataRow("SocialPreview.pdf")] + [DataRow("hundesteuer-anmeldung.pdf")] + [DataRow("Wikimedia_Commons_web.pdf")] + public async Task ToImagesAsyncOperationCanceledException(string pdfFileName) + { + using var inputStream = GetInputStream(Path.Combine("Assets", pdfFileName)); + var token = new CancellationTokenSource(); + var pageCount = PDFtoImage.Conversion.GetPageCount(inputStream); + + using var inputStream2 = GetInputStream(Path.Combine("Assets", pdfFileName)); + + if (pageCount < 2) + { + // no OperationCanceledException should be thrown if there are not multiple pages to iterate through + await foreach (var image in ToImagesAsync(inputStream2, dpi: 1200, cancellationToken: token.Token)) + { + token.Cancel(); + } + + return; + } + + await Assert.ThrowsExceptionAsync(async () => + { + await foreach (var image in ToImagesAsync(inputStream2, dpi: 1200, cancellationToken: token.Token)) + { + token.Cancel(); + } + }); + } +#endif + } +} \ No newline at end of file diff --git a/src/Tests/Compatibility/ExceptionTests.cs b/src/Tests/Compatibility/ExceptionTests.cs new file mode 100644 index 00000000..0d55aa86 --- /dev/null +++ b/src/Tests/Compatibility/ExceptionTests.cs @@ -0,0 +1,25 @@ +#pragma warning disable CS0618 +using Microsoft.VisualStudio.TestTools.UnitTesting; +using PDFtoImage.Exceptions; +using PDFtoImage.Tests; +using System; +using System.IO; +using static PDFtoImage.Compatibility.Conversion; +using static PDFtoImage.Tests.TestUtils; + +namespace Tests.Compatibility +{ + [TestClass] + public class ExceptionTests : TestBase + { + [TestMethod] + [DataRow("hundesteuer-anmeldung.pdf")] + [DataRow("SocialPreview.pdf")] + [DataRow("Wikimedia_Commons_web.pdf")] + public void ThrowsPageNotFound(string inputFile) + { + using var inputStream = GetInputStream(Path.Combine("Assets", inputFile)); + Assert.ThrowsException(() => ToImage(inputStream, page: 80085)); + } + } +} \ No newline at end of file diff --git a/src/Tests/Compatibility/FormFillTests.cs b/src/Tests/Compatibility/FormFillTests.cs new file mode 100644 index 00000000..1bf20469 --- /dev/null +++ b/src/Tests/Compatibility/FormFillTests.cs @@ -0,0 +1,79 @@ +#pragma warning disable CS0618 +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.IO; +using static PDFtoImage.Compatibility.Conversion; +using static PDFtoImage.Tests.TestUtils; + +namespace Tests.Compatibility +{ + [TestClass] + public class FormFillTests + { + [TestInitialize] + public void Initialize() + { +#if NET6_0_OR_GREATER + if (!OperatingSystem.IsWindows() && !OperatingSystem.IsLinux() && !OperatingSystem.IsMacOS()) + Assert.Inconclusive("This test must run on Windows, Linux or macOS."); +#endif + } + + [TestMethod] + [DataRow(null, DisplayName = "Default (no form fill)")] + [DataRow(true, DisplayName = "Form fill")] + [DataRow(false, DisplayName = "No form fill")] + public void SaveWebpPageNumber(bool? withFormFill) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"hundesteuer-anmeldung_{withFormFill ?? false}.webp"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (withFormFill == null) + SaveWebp(outputStream, inputStream, dpi: 40); + else + SaveWebp(outputStream, inputStream, dpi: 40, withFormFill: withFormFill.Value); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(null, DisplayName = "Default (no form fill)")] + [DataRow(true, DisplayName = "Form fill")] + [DataRow(false, DisplayName = "No form fill")] + public void SavePngPageNumber(bool? withFormFill) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"hundesteuer-anmeldung_{withFormFill ?? false}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (withFormFill == null) + SavePng(outputStream, inputStream, dpi: 40); + else + SavePng(outputStream, inputStream, dpi: 40, withFormFill: withFormFill.Value); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(null, DisplayName = "Default (no form fill)")] + [DataRow(true, DisplayName = "Form fill")] + [DataRow(false, DisplayName = "No form fill")] + public void SaveJpegPageNumber(bool? withFormFill) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), $"hundesteuer-anmeldung_{withFormFill ?? false}.jpg"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (withFormFill == null) + SaveJpeg(outputStream, inputStream, dpi: 40); + else + SaveJpeg(outputStream, inputStream, dpi: 40, withFormFill: withFormFill.Value); + + CompareStreams(expectedPath, outputStream); + } + } +} \ No newline at end of file diff --git a/src/Tests/Compatibility/RotationTests.cs b/src/Tests/Compatibility/RotationTests.cs new file mode 100644 index 00000000..7ebf80e9 --- /dev/null +++ b/src/Tests/Compatibility/RotationTests.cs @@ -0,0 +1,134 @@ +#pragma warning disable CS0618 +using Microsoft.VisualStudio.TestTools.UnitTesting; +using PDFtoImage; +using PDFtoImage.Tests; +using System; +using System.IO; +using static PDFtoImage.Compatibility.Conversion; +using static PDFtoImage.Tests.TestUtils; + +namespace Tests.Compatibility +{ + [TestClass] + public class RotationTests : TestBase + { + [TestMethod] + [DataRow(null, DisplayName = "Default (no rotation)")] + [DataRow(PdfRotation.Rotate0, DisplayName = "No rotation")] + [DataRow(PdfRotation.Rotate90, DisplayName = "Rotated 90 degrees clockwise")] + [DataRow(PdfRotation.Rotate180, DisplayName = "Rotated 180 degrees")] + [DataRow(PdfRotation.Rotate270, DisplayName = "Rotated 90 degrees counter-clockwise")] + public void SaveWebpPageNumber(PdfRotation? rotation) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "Rotation", $"hundesteuer-anmeldung_{Enum.GetName(typeof(PdfRotation), rotation ?? PdfRotation.Rotate0)}.webp"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (rotation == null) + SaveWebp(outputStream, inputStream, dpi: 40); + else + SaveWebp(outputStream, inputStream, dpi: 40, rotation: rotation.Value); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(null, DisplayName = "Default (no rotation)")] + [DataRow(PdfRotation.Rotate0, DisplayName = "No rotation")] + [DataRow(PdfRotation.Rotate90, DisplayName = "Rotated 90 degrees clockwise")] + [DataRow(PdfRotation.Rotate180, DisplayName = "Rotated 180 degrees")] + [DataRow(PdfRotation.Rotate270, DisplayName = "Rotated 90 degrees counter-clockwise")] + public void SavePngPageNumber(PdfRotation? rotation) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "Rotation", $"hundesteuer-anmeldung_{Enum.GetName(typeof(PdfRotation), rotation ?? PdfRotation.Rotate0)}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (rotation == null) + SavePng(outputStream, inputStream, dpi: 40); + else + SavePng(outputStream, inputStream, dpi: 40, rotation: rotation.Value); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(null, DisplayName = "Default (no rotation)")] + [DataRow(PdfRotation.Rotate0, DisplayName = "No rotation")] + [DataRow(PdfRotation.Rotate90, DisplayName = "Rotated 90 degrees clockwise")] + [DataRow(PdfRotation.Rotate180, DisplayName = "Rotated 180 degrees")] + [DataRow(PdfRotation.Rotate270, DisplayName = "Rotated 90 degrees counter-clockwise")] + public void SaveJpegPageNumber(PdfRotation? rotation) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "Rotation", $"hundesteuer-anmeldung_{Enum.GetName(typeof(PdfRotation), rotation ?? PdfRotation.Rotate0)}.jpg"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (rotation == null) + SaveJpeg(outputStream, inputStream, dpi: 40); + else + SaveJpeg(outputStream, inputStream, dpi: 40, rotation: rotation.Value); + + CompareStreams(expectedPath, outputStream); + } + + [TestMethod] + [DataRow(null, null, null, false)] + [DataRow(PdfRotation.Rotate0, null, null, false)] + [DataRow(PdfRotation.Rotate90, null, null, false)] + [DataRow(PdfRotation.Rotate180, null, null, false)] + [DataRow(PdfRotation.Rotate270, null, null, false)] + [DataRow(null, null, null, true)] + [DataRow(PdfRotation.Rotate0, null, null, true)] + [DataRow(PdfRotation.Rotate90, null, null, true)] + [DataRow(PdfRotation.Rotate180, null, null, true)] + [DataRow(PdfRotation.Rotate270, null, null, true)] + [DataRow(null, 200, null, false)] + [DataRow(PdfRotation.Rotate0, 200, null, false)] + [DataRow(PdfRotation.Rotate90, 200, null, false)] + [DataRow(PdfRotation.Rotate180, 200, null, false)] + [DataRow(PdfRotation.Rotate270, 200, null, false)] + [DataRow(null, 200, null, true)] + [DataRow(PdfRotation.Rotate0, 200, null, true)] + [DataRow(PdfRotation.Rotate90, 200, null, true)] + [DataRow(PdfRotation.Rotate180, 200, null, true)] + [DataRow(PdfRotation.Rotate270, 200, null, true)] + [DataRow(null, null, 200, false)] + [DataRow(PdfRotation.Rotate0, null, 200, false)] + [DataRow(PdfRotation.Rotate90, null, 200, false)] + [DataRow(PdfRotation.Rotate180, null, 200, false)] + [DataRow(PdfRotation.Rotate270, 200, null, false)] + [DataRow(null, null, 200, true)] + [DataRow(PdfRotation.Rotate0, null, 200, true)] + [DataRow(PdfRotation.Rotate90, null, 200, true)] + [DataRow(PdfRotation.Rotate180, null, 200, true)] + [DataRow(PdfRotation.Rotate270, null, 200, true)] + [DataRow(null, 200, 200, false)] + [DataRow(PdfRotation.Rotate0, 200, 200, false)] + [DataRow(PdfRotation.Rotate90, 200, 200, false)] + [DataRow(PdfRotation.Rotate180, 200, 200, false)] + [DataRow(PdfRotation.Rotate270, 200, 200, false)] + [DataRow(null, 200, 200, true)] + [DataRow(PdfRotation.Rotate0, 200, 200, true)] + [DataRow(PdfRotation.Rotate90, 200, 200, true)] + [DataRow(PdfRotation.Rotate180, 200, 200, true)] + [DataRow(PdfRotation.Rotate270, 200, 200, true)] + public void WithWidthHeightAspect(PdfRotation? rotation, int? width, int? height, bool withAspectRatio) + { + var expectedPath = Path.Combine("Assets", "Expected", GetPlatformAsString(), "Rotation", $"hundesteuer-anmeldung_{Enum.GetName(typeof(PdfRotation), rotation ?? PdfRotation.Rotate0)}_{width?.ToString() ?? "null"}x{height?.ToString() ?? "null"}_{withAspectRatio}.png"); + + using var inputStream = GetInputStream(Path.Combine("Assets", "hundesteuer-anmeldung.pdf")); + using var outputStream = CreateOutputStream(expectedPath); + + if (rotation == null) + SavePng(outputStream, inputStream, dpi: 40, width: width, height: height, withAspectRatio: withAspectRatio); + else + SavePng(outputStream, inputStream, dpi: 40, width: width, height: height, withAspectRatio: withAspectRatio, rotation: rotation.Value); + + CompareStreams(expectedPath, outputStream); + } + } +} \ No newline at end of file diff --git a/src/Tests/FormFillTests.cs b/src/Tests/FormFillTests.cs index 0cfa3ea4..942dc56f 100644 --- a/src/Tests/FormFillTests.cs +++ b/src/Tests/FormFillTests.cs @@ -30,9 +30,9 @@ public void SaveWebpPageNumber(bool? withFormFill) using var outputStream = CreateOutputStream(expectedPath); if (withFormFill == null) - SaveWebp(outputStream, inputStream, dpi: 40); + SaveWebp(outputStream, inputStream, options: new(Dpi: 40)); else - SaveWebp(outputStream, inputStream, dpi: 40, withFormFill: withFormFill.Value); + SaveWebp(outputStream, inputStream, options: new(Dpi: 40, WithFormFill: withFormFill.Value)); CompareStreams(expectedPath, outputStream); } @@ -49,9 +49,9 @@ public void SavePngPageNumber(bool? withFormFill) using var outputStream = CreateOutputStream(expectedPath); if (withFormFill == null) - SavePng(outputStream, inputStream, dpi: 40); + SavePng(outputStream, inputStream, options: new(Dpi: 40)); else - SavePng(outputStream, inputStream, dpi: 40, withFormFill: withFormFill.Value); + SavePng(outputStream, inputStream, options: new(Dpi: 40, WithFormFill: withFormFill.Value)); CompareStreams(expectedPath, outputStream); } @@ -68,9 +68,9 @@ public void SaveJpegPageNumber(bool? withFormFill) using var outputStream = CreateOutputStream(expectedPath); if (withFormFill == null) - SaveJpeg(outputStream, inputStream, dpi: 40); + SaveJpeg(outputStream, inputStream, options: new(Dpi: 40)); else - SaveJpeg(outputStream, inputStream, dpi: 40, withFormFill: withFormFill.Value); + SaveJpeg(outputStream, inputStream, options: new(Dpi: 40, WithFormFill: withFormFill.Value)); CompareStreams(expectedPath, outputStream); } diff --git a/src/Tests/PasswordTests.cs b/src/Tests/PasswordTests.cs index 253bd80c..e816822c 100644 --- a/src/Tests/PasswordTests.cs +++ b/src/Tests/PasswordTests.cs @@ -21,7 +21,7 @@ public class PasswordTests : TestBase public void WithCorrectPassword(string inputFile, string? password = null) { using var inputStream = GetInputStream(Path.Combine("Assets", inputFile)); - var output = GetPageCount(inputStream, password); + var output = GetPageCount(inputStream, password: password); Assert.AreEqual(1, output, "Page count should be 1, if the password was correct."); } @@ -33,7 +33,7 @@ public void WithCorrectPassword(string inputFile, string? password = null) public void ThrowsIncorrectPassword(string inputFile, string? password = null) { using var inputStream = GetInputStream(Path.Combine("Assets", inputFile)); - Assert.ThrowsException(() => GetPageCount(inputStream, password)); + Assert.ThrowsException(() => GetPageCount(inputStream, password: password)); } } } \ No newline at end of file diff --git a/src/Tests/QueryTests.cs b/src/Tests/QueryTests.cs index 564dbbdc..6309478b 100644 --- a/src/Tests/QueryTests.cs +++ b/src/Tests/QueryTests.cs @@ -48,7 +48,7 @@ public void GetPageSize(string pdfFileName, int page, float expectedPageWidth, f { using var inputStream = GetInputStream(Path.Combine("Assets", pdfFileName)); - var result = PDFtoImage.Conversion.GetPageSize(inputStream, page); + var result = PDFtoImage.Conversion.GetPageSize(inputStream, page: page); Assert.AreEqual(expectedPageWidth, result.Width, 0.0001f, "Expected and actual PDF page width differs."); Assert.AreEqual(expectedPageHeight, result.Height, 0.0001f, "Expected and actual PDF page height differs."); diff --git a/src/Tests/RotationTests.cs b/src/Tests/RotationTests.cs index ec94b797..ce2a133c 100644 --- a/src/Tests/RotationTests.cs +++ b/src/Tests/RotationTests.cs @@ -25,9 +25,9 @@ public void SaveWebpPageNumber(PdfRotation? rotation) using var outputStream = CreateOutputStream(expectedPath); if (rotation == null) - SaveWebp(outputStream, inputStream, dpi: 40); + SaveWebp(outputStream, inputStream, options: new(Dpi: 40)); else - SaveWebp(outputStream, inputStream, dpi: 40, rotation: rotation.Value); + SaveWebp(outputStream, inputStream, options: new(Dpi: 40, Rotation: rotation.Value)); CompareStreams(expectedPath, outputStream); } @@ -46,9 +46,9 @@ public void SavePngPageNumber(PdfRotation? rotation) using var outputStream = CreateOutputStream(expectedPath); if (rotation == null) - SavePng(outputStream, inputStream, dpi: 40); + SavePng(outputStream, inputStream, options: new(Dpi: 40)); else - SavePng(outputStream, inputStream, dpi: 40, rotation: rotation.Value); + SavePng(outputStream, inputStream, options: new(Dpi: 40, Rotation: rotation.Value)); CompareStreams(expectedPath, outputStream); } @@ -67,9 +67,9 @@ public void SaveJpegPageNumber(PdfRotation? rotation) using var outputStream = CreateOutputStream(expectedPath); if (rotation == null) - SaveJpeg(outputStream, inputStream, dpi: 40); + SaveJpeg(outputStream, inputStream, options: new(Dpi: 40)); else - SaveJpeg(outputStream, inputStream, dpi: 40, rotation: rotation.Value); + SaveJpeg(outputStream, inputStream, options: new(Dpi: 40, Rotation: rotation.Value)); CompareStreams(expectedPath, outputStream); } @@ -123,9 +123,9 @@ public void WithWidthHeightAspect(PdfRotation? rotation, int? width, int? height using var outputStream = CreateOutputStream(expectedPath); if (rotation == null) - SavePng(outputStream, inputStream, dpi: 40, width: width, height: height, withAspectRatio: withAspectRatio); + SavePng(outputStream, inputStream, options: new(Dpi: 40, Width: width, Height: height, WithAspectRatio: withAspectRatio)); else - SavePng(outputStream, inputStream, dpi: 40, width: width, height: height, withAspectRatio: withAspectRatio, rotation: rotation.Value); + SavePng(outputStream, inputStream, options: new(Dpi: 40, Width: width, Height: height, WithAspectRatio: withAspectRatio, Rotation: rotation.Value)); CompareStreams(expectedPath, outputStream); } diff --git a/src/Tests/Tests.csproj b/src/Tests/Tests.csproj index d3972cf8..ff432dc7 100644 --- a/src/Tests/Tests.csproj +++ b/src/Tests/Tests.csproj @@ -333,6 +333,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -817,6 +869,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1313,6 +1417,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2557,6 +2752,162 @@ Always + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + Always @@ -4009,6 +4360,162 @@ Always + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + Always @@ -5461,6 +5968,279 @@ Always + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + + + Always + Always @@ -6017,7 +6797,7 @@ - - + + \ No newline at end of file diff --git a/src/WebConverter/Models/RenderRequest.cs b/src/WebConverter/Models/RenderRequest.cs index 317ed31e..44e1c2ee 100644 --- a/src/WebConverter/Models/RenderRequest.cs +++ b/src/WebConverter/Models/RenderRequest.cs @@ -1,5 +1,4 @@ -using KristofferStrube.Blazor.FileSystem; -using Microsoft.AspNetCore.Components.Forms; +using Microsoft.AspNetCore.Components.Forms; using SkiaSharp; using System; using System.ComponentModel.DataAnnotations; @@ -71,6 +70,25 @@ public class RenderRequest : IDisposable [Required] public PdfRotation Rotation { get; set; } = PdfRotation.Rotate0; + [Required] + public bool UseBounds { get; set; } = false; + + [Required] + [Range(float.MinValue, float.MaxValue)] + public float BoundsX { get; set; } = 0f; + + [Required] + [Range(float.MinValue, float.MaxValue)] + public float BoundsY { get; set; } = 0f; + + [Required] + [Range(float.MinValue, float.MaxValue)] + public float BoundsWidth { get; set; } = 1000f; + + [Required] + [Range(float.MinValue, float.MaxValue)] + public float BoundsHeight { get; set; } = 1000f; + public static string GetRotationLocalized(PdfRotation rotation) => rotation switch { PdfRotation.Rotate0 => "0°", diff --git a/src/WebConverter/Pages/Index.razor b/src/WebConverter/Pages/Index.razor index ccbbc8ef..24fc82b2 100644 --- a/src/WebConverter/Pages/Index.razor +++ b/src/WebConverter/Pages/Index.razor @@ -171,7 +171,7 @@ -
+
@@ -182,6 +182,38 @@
+ +
+
+ + +
+
+
+ +
+ +
+ + +
+ +
+
+ +
+ +
+ +
+ + +
+ +
+
+
+
diff --git a/src/WebConverter/Pages/Index.razor.cs b/src/WebConverter/Pages/Index.razor.cs index 30aeaf99..f61155d7 100644 --- a/src/WebConverter/Pages/Index.razor.cs +++ b/src/WebConverter/Pages/Index.razor.cs @@ -4,6 +4,7 @@ using PDFtoImage.WebConverter.Models; using SkiaSharp; using System; +using System.Drawing; using System.Globalization; using System.IO; using System.Linq; @@ -154,20 +155,30 @@ private async Task Submit() await Task.Factory.StartNew(() => { + if (!Model.UseBounds) + { + var pageSize = PDFtoImage.Conversion.GetPageSize(Model.Input, true, Model.Page, !string.IsNullOrEmpty(Model.Password) ? Model.Password : null); + Model.BoundsWidth = pageSize.Width; + Model.BoundsHeight = pageSize.Height; + } + bitmap = PDFtoImage.Conversion.ToImage( Model.Input, leaveOpen: true, password: !string.IsNullOrEmpty(Model.Password) ? Model.Password : null, page: Model.Page, - dpi: Model.Dpi, - width: Model.Width, - height: Model.Height, - withAnnotations: Model.WithAnnotations, - withFormFill: Model.WithFormFill, - withAspectRatio: Model.WithAspectRatio, - rotation: Model.Rotation, - antiAliasing: antiAliasing, - backgroundColor: backgroundColor + new RenderOptions( + Dpi: Model.Dpi, + Width: Model.Width, + Height: Model.Height, + WithAnnotations: Model.WithAnnotations, + WithFormFill: Model.WithFormFill, + WithAspectRatio: Model.WithAspectRatio, + Rotation: Model.Rotation, + AntiAliasing: antiAliasing, + BackgroundColor: backgroundColor, + Bounds: Model.UseBounds ? new RectangleF(Model.BoundsX, Model.BoundsY, Model.BoundsWidth, Model.BoundsHeight) : null + ) ); encodeSuccess = bitmap!.Encode(Model.Output, Model.Format, Model.Quality); }, TaskCreationOptions.LongRunning); diff --git a/src/WebConverter/WebConverter.csproj b/src/WebConverter/WebConverter.csproj index 63775c07..3e35e069 100644 --- a/src/WebConverter/WebConverter.csproj +++ b/src/WebConverter/WebConverter.csproj @@ -7,8 +7,8 @@ PDFtoImage.WebConverter PDFtoImage.WebConverter PDFtoImage.WebConverter.Program - 3.1.0 - + 4.0.0 + preview true true true @@ -39,7 +39,7 @@ - +