From c31c4b1f93d5c080fad6181df7e22eae39cf8a68 Mon Sep 17 00:00:00 2001 From: Simon Cropp Date: Tue, 29 Apr 2025 20:50:41 +1000 Subject: [PATCH] Respect target name when converting --- src/Directory.Build.props | 2 +- .../Samples.VerifyImageFile.verified.jpg | Bin 135955 -> 135915 bytes ...ifyImageFileWithCustomEncoder.verified.png | Bin 1027923 -> 1027883 bytes src/Verify.ImageSharp/GlobalUsings.cs | 9 ++++ src/Verify.ImageSharp/InfoBuilder.cs | 8 +-- src/Verify.ImageSharp/VerifyImageSharp.cs | 47 ++++++++---------- 6 files changed, 35 insertions(+), 31 deletions(-) create mode 100644 src/Verify.ImageSharp/GlobalUsings.cs diff --git a/src/Directory.Build.props b/src/Directory.Build.props index e43c74bc..e3fd726e 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -2,7 +2,7 @@ CS1591;CS0649;NU1608;NU1109 - 4.3.4 + 4.4.0 enable preview 1.0.0 diff --git a/src/Tests/Samples.VerifyImageFile.verified.jpg b/src/Tests/Samples.VerifyImageFile.verified.jpg index 9e25ea471c24a352c219c8358c3c33a5f4956520..9a6decc83b5a75beb28a0e66d50eeacf6bd8308d 100644 GIT binary patch delta 245 zcmbQdjN|oEjtSxdovsy`X$%aWo>~kX3=9mM6V-KXtAGpvMkWSvAl(4OQjDw&j6ixi z5KBYZ^MPz5pc)Y%y&Q-$+gZSBc28XCF`1EZUp*@m1H;@Vh(=x@n|T66u_%zu0%dCg z*^HC8z#46VY^F&N^{yZ_P;p-%n+qx)3S`$zVrSqHW?+Z~vfF@c4xr02MHv|Q7D4nD ciZL+oFJff_8(P`y!qo1<#JJssiRrum06sn+z5oCK delta 284 zcmaF8lwHRc9%o8AH+5*`uP<9}Y%{Yk*tTh$LW|{<1p9@k06)y#{xuD{;Kz7X}b_O0{28LE3 syA8aS(VmdDX0K|tSR{#J2 diff --git a/src/Tests/Samples.VerifyImageFileWithCustomEncoder.verified.png b/src/Tests/Samples.VerifyImageFileWithCustomEncoder.verified.png index 021e960c7bec955a657e6f4b099858a59f2cda4e..d79aa54a307e29ad7ccd59c6caa9dfa93aefbdcd 100644 GIT binary patch delta 305 zcmXZWJrBW96vpv$uf8ctLMvf1l2~kp+Jp{9iN%KKXhS645>{$p5sAfMG#HxL&30d) zU&5p9@XPt<=A5RVZ|(lA?W)?c-?0XkRU(CmqWebKoFY<;QxEvt`*-tDV6VBziO#FwFoBNjf@K{ogk3~4NA(X)GUZ=u!jy^WqZ zGR4zGUGxU6;LmKGNV^8NBZDY;6(#?plShxQGs4(y>TA!~dIkdy5fDHG31my)37&sUh7`P|8>xNDOG6Wcz7{r0}3?PI}mdKF((jn0Wmia^8hg~5c6$6EXJQP0{~@vK3)I- diff --git a/src/Verify.ImageSharp/GlobalUsings.cs b/src/Verify.ImageSharp/GlobalUsings.cs new file mode 100644 index 00000000..14a41f3c --- /dev/null +++ b/src/Verify.ImageSharp/GlobalUsings.cs @@ -0,0 +1,9 @@ +// Global using directives + +global using SixLabors.ImageSharp; +global using SixLabors.ImageSharp.Formats; +global using SixLabors.ImageSharp.Formats.Bmp; +global using SixLabors.ImageSharp.Formats.Gif; +global using SixLabors.ImageSharp.Formats.Jpeg; +global using SixLabors.ImageSharp.Formats.Png; +global using SixLabors.ImageSharp.Formats.Tiff; \ No newline at end of file diff --git a/src/Verify.ImageSharp/InfoBuilder.cs b/src/Verify.ImageSharp/InfoBuilder.cs index 6d3f02ab..f6d460eb 100644 --- a/src/Verify.ImageSharp/InfoBuilder.cs +++ b/src/Verify.ImageSharp/InfoBuilder.cs @@ -2,14 +2,14 @@ { public static object GetInfo(this Image image) { - var metadata = image.Metadata; + var data = image.Metadata; return new { image.Width, image.Height, - metadata.HorizontalResolution, - metadata.VerticalResolution, - metadata.ResolutionUnits + data.HorizontalResolution, + data.VerticalResolution, + data.ResolutionUnits }; } } \ No newline at end of file diff --git a/src/Verify.ImageSharp/VerifyImageSharp.cs b/src/Verify.ImageSharp/VerifyImageSharp.cs index c23333ae..ceb71726 100644 --- a/src/Verify.ImageSharp/VerifyImageSharp.cs +++ b/src/Verify.ImageSharp/VerifyImageSharp.cs @@ -1,8 +1,4 @@ -using SixLabors.ImageSharp.Formats.Jpeg; -using SixLabors.ImageSharp.Formats.Png; -using SixLabors.ImageSharp.Formats.Tiff; - -namespace VerifyTests; +namespace VerifyTests; public static class VerifyImageSharp { @@ -18,14 +14,14 @@ public static void Initialize() Initialized = true; InnerVerifier.ThrowIfVerifyHasBeenRun(); - VerifierSettings.RegisterFileConverter("bmp", ConvertBmp); - VerifierSettings.RegisterFileConverter("gif", ConvertGif); - VerifierSettings.RegisterFileConverter("jpg", ConvertJpg); - VerifierSettings.RegisterFileConverter("png", ConvertPng); - VerifierSettings.RegisterFileConverter("tif", ConvertTiff); + VerifierSettings.RegisterStreamConverter("bmp", ConvertBmp); + VerifierSettings.RegisterStreamConverter("gif", ConvertGif); + VerifierSettings.RegisterStreamConverter("jpg", ConvertJpg); + VerifierSettings.RegisterStreamConverter("png", ConvertPng); + VerifierSettings.RegisterStreamConverter("tif", ConvertTiff); var encoder = new PngEncoder(); - VerifierSettings.RegisterFileConverter((image, context) => ConvertImage(image, context, "png", encoder)); + VerifierSettings.RegisterFileConverter((image, context) => ConvertImage(null, image, context, "png", encoder)); } static void EncodeAs(this VerifySettings settings, string extension, IImageEncoder? encoder) @@ -80,31 +76,30 @@ public static SettingsTask EncodeAsJpeg(this SettingsTask settings, JpegEncoder? public static void EncodeAsJpeg(this VerifySettings settings, JpegEncoder? encoder = null) => settings.EncodeAs("jpg", encoder); + static ConversionResult ConvertBmp(string? name, Stream stream, IReadOnlyDictionary context) => + Convert(name, BmpDecoder.Instance, stream, "bmp", context); - static ConversionResult ConvertBmp(Stream stream, IReadOnlyDictionary context) => - Convert(BmpDecoder.Instance, stream, "bmp", context); - - static ConversionResult ConvertGif(Stream stream, IReadOnlyDictionary context) => - Convert(GifDecoder.Instance, stream, "gif", context); + static ConversionResult ConvertGif(string? name, Stream stream, IReadOnlyDictionary context) => + Convert(name, GifDecoder.Instance, stream, "gif", context); - static ConversionResult ConvertJpg(Stream stream, IReadOnlyDictionary context) => - Convert(JpegDecoder.Instance, stream, "jpg", context); + static ConversionResult ConvertJpg(string? name, Stream stream, IReadOnlyDictionary context) => + Convert(name, JpegDecoder.Instance, stream, "jpg", context); - static ConversionResult ConvertPng(Stream stream, IReadOnlyDictionary context) => - Convert(PngDecoder.Instance, stream, "png", context); + static ConversionResult ConvertPng(string? name, Stream stream, IReadOnlyDictionary context) => + Convert(name, PngDecoder.Instance, stream, "png", context); - static ConversionResult ConvertTiff(Stream stream, IReadOnlyDictionary context) => - Convert(TiffDecoder.Instance, stream, "tif", context); + static ConversionResult ConvertTiff(string? name, Stream stream, IReadOnlyDictionary context) => + Convert(name, TiffDecoder.Instance, stream, "tif", context); - static ConversionResult Convert(IImageDecoder decoder, Stream stream, string extension, IReadOnlyDictionary context) + static ConversionResult Convert(string? name, IImageDecoder decoder, Stream stream, string extension, IReadOnlyDictionary context) where TEncoder : IImageEncoder, new() { using var image = decoder.Decode(new(), stream); stream.Position = 0; - return ConvertImage(image, context, extension, new TEncoder()); + return ConvertImage(name, image, context, extension, new TEncoder()); } - static ConversionResult ConvertImage(Image image, IReadOnlyDictionary context, string extension, IImageEncoder encoder) + static ConversionResult ConvertImage(string? name, Image image, IReadOnlyDictionary context, string extension, IImageEncoder encoder) { if (context.TryGetValue("ImageSharpEncoder", out var encoderValue)) { @@ -116,6 +111,6 @@ static ConversionResult ConvertImage(Image image, IReadOnlyDictionary