From 551dd9ba794fdc162371209f623ab025117f527e Mon Sep 17 00:00:00 2001 From: first-ironsoftware Date: Wed, 23 Apr 2025 15:52:32 +0700 Subject: [PATCH 1/6] Update dependencies and nuspec file --- .../IronSoftware.Drawing.Common.csproj | 4 ++-- NuGet/IronSoftware.Drawing.nuspec | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/IronSoftware.Drawing/IronSoftware.Drawing.Common/IronSoftware.Drawing.Common.csproj b/IronSoftware.Drawing/IronSoftware.Drawing.Common/IronSoftware.Drawing.Common.csproj index af58cb4..ec774df 100644 --- a/IronSoftware.Drawing/IronSoftware.Drawing.Common/IronSoftware.Drawing.Common.csproj +++ b/IronSoftware.Drawing/IronSoftware.Drawing.Common/IronSoftware.Drawing.Common.csproj @@ -1,4 +1,4 @@ - + IronSoftware.Drawing.Common.snk @@ -25,7 +25,7 @@ - + diff --git a/NuGet/IronSoftware.Drawing.nuspec b/NuGet/IronSoftware.Drawing.nuspec index 730882b..aa7f61e 100644 --- a/NuGet/IronSoftware.Drawing.nuspec +++ b/NuGet/IronSoftware.Drawing.nuspec @@ -46,14 +46,14 @@ For general support and technical inquiries, please email us at: support@ironsof - + - + From 1ade516bf7284a6cbf8777bca43052878ec162b0 Mon Sep 17 00:00:00 2001 From: Meee <104610177+mee-ironsoftware@users.noreply.github.com> Date: Thu, 24 Apr 2025 12:09:23 +0700 Subject: [PATCH 2/6] PR: Install GDI+ dependencies on Ubuntu agent before execute tests --- CI/job_templates/test_drawing_libraries.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CI/job_templates/test_drawing_libraries.yml b/CI/job_templates/test_drawing_libraries.yml index ac8c71e..b8c1fa7 100644 --- a/CI/job_templates/test_drawing_libraries.yml +++ b/CI/job_templates/test_drawing_libraries.yml @@ -20,6 +20,14 @@ jobs: buildType: 'current' artifactName: 'IronDrawingDataTests' targetPath: '$(Agent.BuildDirectory)/Data' + - ${{ if eq(parameters.OSPlatform, 'Ubuntu') }}: + - task: Bash@3 + displayName: 'Install GDI+ dependencies' + inputs: + targetType: 'inline' + script: | + sudo apt-get update + sudo apt-get install -y libgdiplus libc6-dev - ${{ if eq(parameters.framework, 'netcoreapp3.1') }}: - task: UseDotNet@2 displayName: 'Install .Netcoreapp3.1 Core sdk' From 59b7d7a53f1aa0d38d221b200ba7d8d9059f9f20 Mon Sep 17 00:00:00 2001 From: first-ironsoftware Date: Fri, 25 Apr 2025 12:45:41 +0700 Subject: [PATCH 3/6] Attempted to fix deployment issue in unit test for Linux --- CI/job_templates/test_drawing_libraries.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CI/job_templates/test_drawing_libraries.yml b/CI/job_templates/test_drawing_libraries.yml index b8c1fa7..46c9b26 100644 --- a/CI/job_templates/test_drawing_libraries.yml +++ b/CI/job_templates/test_drawing_libraries.yml @@ -20,7 +20,7 @@ jobs: buildType: 'current' artifactName: 'IronDrawingDataTests' targetPath: '$(Agent.BuildDirectory)/Data' - - ${{ if eq(parameters.OSPlatform, 'Ubuntu') }}: + - ${{ if eq(parameters.OSPlatform, 'Ubuntu') || eq(parameters.OSPlatform, 'Linux') }}: - task: Bash@3 displayName: 'Install GDI+ dependencies' inputs: From f91e9488481b0db98ee4f36c4005e453831f5cf4 Mon Sep 17 00:00:00 2001 From: first-ironsoftware Date: Fri, 25 Apr 2025 12:52:32 +0700 Subject: [PATCH 4/6] Second attempted to fix the unit test issue --- CI/job_templates/test_drawing_libraries.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CI/job_templates/test_drawing_libraries.yml b/CI/job_templates/test_drawing_libraries.yml index 46c9b26..d6a6b42 100644 --- a/CI/job_templates/test_drawing_libraries.yml +++ b/CI/job_templates/test_drawing_libraries.yml @@ -20,7 +20,7 @@ jobs: buildType: 'current' artifactName: 'IronDrawingDataTests' targetPath: '$(Agent.BuildDirectory)/Data' - - ${{ if eq(parameters.OSPlatform, 'Ubuntu') || eq(parameters.OSPlatform, 'Linux') }}: + - ${{ if or(eq(parameters.OSPlatform, 'Ubuntu'), eq(parameters.OSPlatform, 'Linux')) }}: - task: Bash@3 displayName: 'Install GDI+ dependencies' inputs: From 3779a0d8d53aaa54a9839e699a6a205b583e1954 Mon Sep 17 00:00:00 2001 From: first-ironsoftware Date: Fri, 25 Apr 2025 13:51:36 +0700 Subject: [PATCH 5/6] Update release notes --- NuGet/IronSoftware.Drawing.nuspec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/NuGet/IronSoftware.Drawing.nuspec b/NuGet/IronSoftware.Drawing.nuspec index aa7f61e..45234c3 100644 --- a/NuGet/IronSoftware.Drawing.nuspec +++ b/NuGet/IronSoftware.Drawing.nuspec @@ -39,8 +39,7 @@ Supports: For general support and technical inquiries, please email us at: support@ironsoftware.com IronSoftware.System.Drawing is an open-source solution for .NET developers to replace System.Drawing.Common with a universal and flexible library. - - Fixes incorrect HorizontalResolution and VerticalResolution of AnyBitmap images. - - Improves library's internal functionality and performance. + - Updates internal dependencies. Copyright © Iron Software 2022-2025 Images, Bitmap, SkiaSharp, SixLabors, BitMiracle, Maui, SVG, TIFF, TIF, GIF, JPEG, PNG, Color, Rectangle, Drawing, C#, VB.NET, ASPX, create, render, generate, standard, netstandard2.0, core, netcore From ace14e797fc3d36298f3de16ca805c61424f9019 Mon Sep 17 00:00:00 2001 From: kannapat-ironsoftware Date: Wed, 7 May 2025 13:17:40 +0700 Subject: [PATCH 6/6] Disable warning messages from BitMiracle.LibTiff.NET --- .../IronSoftware.Drawing.Common/AnyBitmap.cs | 18 ++++++++++++++++++ NuGet/IronSoftware.Drawing.nuspec | 3 ++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/IronSoftware.Drawing/IronSoftware.Drawing.Common/AnyBitmap.cs b/IronSoftware.Drawing/IronSoftware.Drawing.Common/AnyBitmap.cs index 94503d4..bb8e1fe 100644 --- a/IronSoftware.Drawing/IronSoftware.Drawing.Common/AnyBitmap.cs +++ b/IronSoftware.Drawing/IronSoftware.Drawing.Common/AnyBitmap.cs @@ -2233,6 +2233,21 @@ private static SKBitmap OpenTiffToSKBitmap(AnyBitmap anyBitmap) } } + /// + /// Disable warning message written to console by BitMiracle.LibTiff.NET. + /// + private class DisableErrorHandler : TiffErrorHandler + { + public override void WarningHandler(Tiff tif, string method, string format, params object[] args) + { + // do nothing, ie, do not write warnings to console + } + public override void WarningHandlerExt(Tiff tif, object clientData, string method, string format, params object[] args) + { + // do nothing ie, do not write warnings to console + } + } + private void OpenTiffToImageSharp(ReadOnlySpan bytes) { try @@ -2246,6 +2261,9 @@ private void OpenTiffToImageSharp(ReadOnlySpan bytes) // create a memory stream out of them using MemoryStream tiffStream = new(bytes.ToArray()); + // Disable warning messages + Tiff.SetErrorHandler(new DisableErrorHandler()); + // open a TIFF stored in the stream using (Tiff tiff = Tiff.ClientOpen("in-memory", "r", tiffStream, new TiffStream())) { diff --git a/NuGet/IronSoftware.Drawing.nuspec b/NuGet/IronSoftware.Drawing.nuspec index 45234c3..2a28cbb 100644 --- a/NuGet/IronSoftware.Drawing.nuspec +++ b/NuGet/IronSoftware.Drawing.nuspec @@ -39,7 +39,8 @@ Supports: For general support and technical inquiries, please email us at: support@ironsoftware.com IronSoftware.System.Drawing is an open-source solution for .NET developers to replace System.Drawing.Common with a universal and flexible library. - - Updates internal dependencies. + - Updates internal dependencies. + - Disable warning messages from BitMiracle.LibTiff.NET. Copyright © Iron Software 2022-2025 Images, Bitmap, SkiaSharp, SixLabors, BitMiracle, Maui, SVG, TIFF, TIF, GIF, JPEG, PNG, Color, Rectangle, Drawing, C#, VB.NET, ASPX, create, render, generate, standard, netstandard2.0, core, netcore