Browse Source

revert ImageMagick update

pull/3111/head
antonfirsov 6 months ago
parent
commit
3f917163d8
  1. 2
      tests/Directory.Build.targets
  2. 2
      tests/ImageSharp.Benchmarks/Codecs/Tga/DecodeTga.cs
  3. 6
      tests/ImageSharp.Benchmarks/Codecs/Webp/DecodeWebp.cs
  4. 6
      tests/ImageSharp.Benchmarks/LoadResizeSave/LoadResizeSaveStressRunner.cs
  5. 8
      tests/ImageSharp.Tests/Formats/Bmp/BmpDecoderTests.cs
  6. 14
      tests/ImageSharp.Tests/TestUtilities/ReferenceCodecs/MagickReferenceDecoder.cs

2
tests/Directory.Build.targets

@ -24,7 +24,7 @@
Do not update to 14+ yet. There's differnce in how the BMP decoder handles rounding in 16 bit images. Do not update to 14+ yet. There's differnce in how the BMP decoder handles rounding in 16 bit images.
See https://github.com/ImageMagick/ImageMagick/commit/27a0a9c37f18af9c8d823a3ea076f600843b553c See https://github.com/ImageMagick/ImageMagick/commit/27a0a9c37f18af9c8d823a3ea076f600843b553c
--> -->
<PackageReference Update="Magick.NET-Q16-AnyCPU" Version="14.11.1" /> <PackageReference Update="Magick.NET-Q16-AnyCPU" Version="13.10.0" />
<PackageReference Update="Microsoft.DotNet.RemoteExecutor" Version="10.0.0-beta.25563.105" /> <PackageReference Update="Microsoft.DotNet.RemoteExecutor" Version="10.0.0-beta.25563.105" />
<PackageReference Update="Microsoft.DotNet.XUnitExtensions" Version="8.0.0-beta.23580.1" /> <PackageReference Update="Microsoft.DotNet.XUnitExtensions" Version="8.0.0-beta.23580.1" />
<PackageReference Update="Moq" Version="4.20.72" /> <PackageReference Update="Moq" Version="4.20.72" />

2
tests/ImageSharp.Benchmarks/Codecs/Tga/DecodeTga.cs

@ -31,7 +31,7 @@ public class DecodeTga
{ {
MagickReadSettings settings = new() { Format = MagickFormat.Tga }; MagickReadSettings settings = new() { Format = MagickFormat.Tga };
using MagickImage image = new(new MemoryStream(this.data), settings); using MagickImage image = new(new MemoryStream(this.data), settings);
return (int)image.Width; return image.Width;
} }
[Benchmark(Description = "ImageSharp Tga")] [Benchmark(Description = "ImageSharp Tga")]

6
tests/ImageSharp.Benchmarks/Codecs/Webp/DecodeWebp.cs

@ -47,7 +47,7 @@ public class DecodeWebp
MagickReadSettings settings = new() { Format = MagickFormat.WebP }; MagickReadSettings settings = new() { Format = MagickFormat.WebP };
using MemoryStream memoryStream = new(this.webpLossyBytes); using MemoryStream memoryStream = new(this.webpLossyBytes);
using MagickImage image = new(memoryStream, settings); using MagickImage image = new(memoryStream, settings);
return (int)image.Width; return image.Width;
} }
[Benchmark(Description = "ImageSharp Lossy Webp")] [Benchmark(Description = "ImageSharp Lossy Webp")]
@ -55,7 +55,7 @@ public class DecodeWebp
{ {
using MemoryStream memoryStream = new(this.webpLossyBytes); using MemoryStream memoryStream = new(this.webpLossyBytes);
using Image<Rgba32> image = Image.Load<Rgba32>(memoryStream); using Image<Rgba32> image = Image.Load<Rgba32>(memoryStream);
return (int)image.Height; return image.Height;
} }
[Benchmark(Description = "Magick Lossless Webp")] [Benchmark(Description = "Magick Lossless Webp")]
@ -65,7 +65,7 @@ public class DecodeWebp
{ Format = MagickFormat.WebP }; { Format = MagickFormat.WebP };
using MemoryStream memoryStream = new(this.webpLossyBytes); using MemoryStream memoryStream = new(this.webpLossyBytes);
using MagickImage image = new(memoryStream, settings); using MagickImage image = new(memoryStream, settings);
return (int)image.Width; return image.Width;
} }
[Benchmark(Description = "ImageSharp Lossless Webp")] [Benchmark(Description = "ImageSharp Lossless Webp")]

6
tests/ImageSharp.Benchmarks/LoadResizeSave/LoadResizeSaveStressRunner.cs

@ -29,7 +29,7 @@ public enum JpegKind
} }
[SupportedOSPlatform("windows")] [SupportedOSPlatform("windows")]
public sealed class LoadResizeSaveStressRunner public class LoadResizeSaveStressRunner
{ {
private const int Quality = 75; private const int Quality = 75;
@ -250,10 +250,10 @@ public sealed class LoadResizeSaveStressRunner
public void MagickResize(string input) public void MagickResize(string input)
{ {
using MagickImage image = new(input); using MagickImage image = new(input);
this.LogImageProcessed((int)image.Width, (int)image.Height); this.LogImageProcessed(image.Width, image.Height);
// Resize it to fit a 150x150 square // Resize it to fit a 150x150 square
image.Resize((uint)this.ThumbnailSize, (uint)this.ThumbnailSize); image.Resize(this.ThumbnailSize, this.ThumbnailSize);
// Reduce the size of the file // Reduce the size of the file
image.Strip(); image.Strip();

8
tests/ImageSharp.Tests/Formats/Bmp/BmpDecoderTests.cs

@ -224,9 +224,8 @@ public class BmpDecoderTests
} }
} }
// RLE8Cut case disabled, see https://github.com/SixLabors/ImageSharp/issues/3112
// [WithFile(RLE8Cut, PixelTypes.Rgba32)]
[Theory] [Theory]
[WithFile(RLE8Cut, PixelTypes.Rgba32)]
[WithFile(RLE8Delta, PixelTypes.Rgba32)] [WithFile(RLE8Delta, PixelTypes.Rgba32)]
public void BmpDecoder_CanDecode_RunLengthEncoded_8Bit_WithDelta_MagickRefDecoder<TPixel>(TestImageProvider<TPixel> provider) public void BmpDecoder_CanDecode_RunLengthEncoded_8Bit_WithDelta_MagickRefDecoder<TPixel>(TestImageProvider<TPixel> provider)
where TPixel : unmanaged, IPixel<TPixel> where TPixel : unmanaged, IPixel<TPixel>
@ -237,12 +236,11 @@ public class BmpDecoderTests
image.CompareToOriginal(provider, MagickReferenceDecoder.Png); image.CompareToOriginal(provider, MagickReferenceDecoder.Png);
} }
// RLE8Inverted cases disabled, see https://github.com/SixLabors/ImageSharp/issues/3112.
// [WithFile(RLE8Inverted, PixelTypes.Rgba32, false)]
// [WithFile(RLE8Inverted, PixelTypes.Rgba32, true)]
[Theory] [Theory]
[WithFile(RLE8, PixelTypes.Rgba32, false)] [WithFile(RLE8, PixelTypes.Rgba32, false)]
[WithFile(RLE8Inverted, PixelTypes.Rgba32, false)]
[WithFile(RLE8, PixelTypes.Rgba32, true)] [WithFile(RLE8, PixelTypes.Rgba32, true)]
[WithFile(RLE8Inverted, PixelTypes.Rgba32, true)]
public void BmpDecoder_CanDecode_RunLengthEncoded_8Bit<TPixel>(TestImageProvider<TPixel> provider, bool enforceDiscontiguousBuffers) public void BmpDecoder_CanDecode_RunLengthEncoded_8Bit<TPixel>(TestImageProvider<TPixel> provider, bool enforceDiscontiguousBuffers)
where TPixel : unmanaged, IPixel<TPixel> where TPixel : unmanaged, IPixel<TPixel>
{ {

14
tests/ImageSharp.Tests/TestUtilities/ReferenceCodecs/MagickReferenceDecoder.cs

@ -58,14 +58,14 @@ public class MagickReferenceDecoder : ImageDecoder
MagickReadSettings settings = new() MagickReadSettings settings = new()
{ {
FrameCount = options.MaxFrames FrameCount = (int)options.MaxFrames
}; };
settings.SetDefines(bmpReadDefines); settings.SetDefines(bmpReadDefines);
settings.SetDefines(pngReadDefines); settings.SetDefines(pngReadDefines);
using MagickImageCollection magickImageCollection = new(stream, settings); using MagickImageCollection magickImageCollection = new(stream, settings);
int imageWidth = (int)magickImageCollection.Max(x => x.Width); int imageWidth = magickImageCollection.Max(x => x.Width);
int imageHeight = (int)magickImageCollection.Max(x => x.Height); int imageHeight = magickImageCollection.Max(x => x.Height);
List<ImageFrame<TPixel>> framesList = []; List<ImageFrame<TPixel>> framesList = [];
foreach (IMagickImage<ushort> magicFrame in magickImageCollection) foreach (IMagickImage<ushort> magicFrame in magickImageCollection)
@ -74,10 +74,10 @@ public class MagickReferenceDecoder : ImageDecoder
framesList.Add(frame); framesList.Add(frame);
Buffer2DRegion<TPixel> buffer = frame.PixelBuffer.GetRegion( Buffer2DRegion<TPixel> buffer = frame.PixelBuffer.GetRegion(
imageWidth - (int)magicFrame.Width, imageWidth - magicFrame.Width,
imageHeight - (int)magicFrame.Height, imageHeight - magicFrame.Height,
(int)magicFrame.Width, magicFrame.Width,
(int)magicFrame.Height); magicFrame.Height);
using IUnsafePixelCollection<ushort> pixels = magicFrame.GetPixelsUnsafe(); using IUnsafePixelCollection<ushort> pixels = magicFrame.GetPixelsUnsafe();
if (magicFrame.Depth is 12 or 10 or 8 or 6 or 5 or 4 or 3 or 2 or 1) if (magicFrame.Depth is 12 or 10 or 8 or 6 or 5 or 4 or 3 or 2 or 1)

Loading…
Cancel
Save