From ee0eafac43a93c934c128159f1526675773315b3 Mon Sep 17 00:00:00 2001 From: Vladimir Pecanac Date: Sun, 1 Nov 2026 13:22:28 +0100 Subject: [PATCH] Port GenerateImagesInCSharpUsingImageMagick to .NET 10 and Magick.NET 15 Retarget both projects to net10.0, move Magick.NET-Q8-AnyCPU to 15.0.0 and the test packages to xunit 2.9.3, xunit.runner.visualstudio 4.0.1, Microsoft.NET.Test.Sdk 18.11.0 and coverlet.collector 10.1.0. Add the ImageMagick.Drawing namespace, take uint sizes, cast Width and Height to int, dispose the image with using var, and rename the test class off Live so CI runs it. --- .../ImageMagickLibrary/ImageMagickLibrary.csproj | 4 ++-- .../ImageMagickLibrary/ImageService.cs | 3 ++- .../ImageMagickLibrary/Program.cs | 4 ++-- ...LibraryLiveTest.cs => ImageMagickLibraryTests.cs} | 12 ++++++------ .../Tests/Tests.csproj | 10 +++++----- 5 files changed, 17 insertions(+), 16 deletions(-) rename csharp-images/GenerateImagesInCSharpUsingImageMagick/Tests/{ImageMagickLibraryLiveTest.cs => ImageMagickLibraryTests.cs} (93%) diff --git a/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/ImageMagickLibrary.csproj b/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/ImageMagickLibrary.csproj index 81a484b96c..9e2f3de328 100644 --- a/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/ImageMagickLibrary.csproj +++ b/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/ImageMagickLibrary.csproj @@ -2,13 +2,13 @@ Exe - net8.0 + net10.0 enable enable - + diff --git a/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/ImageService.cs b/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/ImageService.cs index 5f91bc1a34..3c6197debb 100644 --- a/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/ImageService.cs +++ b/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/ImageService.cs @@ -1,10 +1,11 @@ using ImageMagick; +using ImageMagick.Drawing; namespace ImageMagickLibrary; public static class ImageService { - public static MagickImage CreateBlankImage(int width, int height, MagickColor color) + public static MagickImage CreateBlankImage(uint width, uint height, MagickColor color) { return new MagickImage(color, width, height); } diff --git a/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/Program.cs b/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/Program.cs index c9b1e8fd84..d5f9365379 100644 --- a/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/Program.cs +++ b/csharp-images/GenerateImagesInCSharpUsingImageMagick/ImageMagickLibrary/Program.cs @@ -3,10 +3,10 @@ string outputPath = @"outputImage.png"; -var image = ImageService.CreateBlankImage(480, 300, MagickColors.AliceBlue); +using var image = ImageService.CreateBlankImage(480, 300, MagickColors.AliceBlue); var strokeColor = MagickColors.YellowGreen; var fillColor = MagickColors.Transparent; -var circle = ImageService.CreateCircle(image.Width / 2, image.Height / 2, 100, 5, strokeColor, fillColor); +var circle = ImageService.CreateCircle((int)image.Width / 2, (int)image.Height / 2, 100, 5, strokeColor, fillColor); ImageService.DrawOnImage(image, circle); ImageService.SaveImage(image, outputPath); diff --git a/csharp-images/GenerateImagesInCSharpUsingImageMagick/Tests/ImageMagickLibraryLiveTest.cs b/csharp-images/GenerateImagesInCSharpUsingImageMagick/Tests/ImageMagickLibraryTests.cs similarity index 93% rename from csharp-images/GenerateImagesInCSharpUsingImageMagick/Tests/ImageMagickLibraryLiveTest.cs rename to csharp-images/GenerateImagesInCSharpUsingImageMagick/Tests/ImageMagickLibraryTests.cs index 488a93a7b9..07af8ee60f 100644 --- a/csharp-images/GenerateImagesInCSharpUsingImageMagick/Tests/ImageMagickLibraryLiveTest.cs +++ b/csharp-images/GenerateImagesInCSharpUsingImageMagick/Tests/ImageMagickLibraryTests.cs @@ -3,7 +3,7 @@ namespace Tests; -public class ImageMagickLibraryLiveTest +public class ImageMagickLibraryTests { private const string OutputPath = @"outputImage.png"; private const string NullOutputPath = ""; @@ -18,12 +18,12 @@ public class ImageMagickLibraryLiveTest private readonly int _invalidPointX = -1; private readonly int _invalidPointY = -1; - public ImageMagickLibraryLiveTest() + public ImageMagickLibraryTests() { _expectedColor = _color; - _centerX = _circle.X + _circle.Width / 2; - _centerY = _circle.Y + _circle.Height / 2; - _radius = _circle.Width / 2; + _centerX = _circle.X + (int)_circle.Width / 2; + _centerY = _circle.Y + (int)_circle.Height / 2; + _radius = (int)_circle.Width / 2; _strokeWidth = 5; } @@ -53,7 +53,7 @@ public void GivenValidSize_WhenCreateBlankImage_ThenReturnMagickImage() [Theory] [InlineData(0, 200)] [InlineData(400, 0)] - public void GivenInvalidSize_WhenCreateBlankImage_ThenThrowArgumentException(int width, int height) + public void GivenInvalidSize_WhenCreateBlankImage_ThenThrowArgumentException(uint width, uint height) { // Arrange, Act & Assert Assert.Throws(() => ImageService.CreateBlankImage(width, height, MagickColors.White)); diff --git a/csharp-images/GenerateImagesInCSharpUsingImageMagick/Tests/Tests.csproj b/csharp-images/GenerateImagesInCSharpUsingImageMagick/Tests/Tests.csproj index cfe9cadb69..372666a857 100644 --- a/csharp-images/GenerateImagesInCSharpUsingImageMagick/Tests/Tests.csproj +++ b/csharp-images/GenerateImagesInCSharpUsingImageMagick/Tests/Tests.csproj @@ -1,7 +1,7 @@ - net8.0 + net10.0 enable enable @@ -10,10 +10,10 @@ - - - - + + + +