Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Project>
<PropertyGroup>
<NoWarn>CS1591;CS0649;NU1608;NU1109</NoWarn>
<Version>4.3.4</Version>
<Version>4.4.0</Version>
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>preview</LangVersion>
<AssemblyVersion>1.0.0</AssemblyVersion>
Expand Down
Binary file modified src/Tests/Samples.VerifyImageFile.verified.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified src/Tests/Samples.VerifyImageFileWithCustomEncoder.verified.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions src/Verify.ImageSharp/GlobalUsings.cs
Original file line number Diff line number Diff line change
@@ -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;
8 changes: 4 additions & 4 deletions src/Verify.ImageSharp/InfoBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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
};
}
}
47 changes: 21 additions & 26 deletions src/Verify.ImageSharp/VerifyImageSharp.cs
Original file line number Diff line number Diff line change
@@ -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
{
Expand All @@ -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>((image, context) => ConvertImage(image, context, "png", encoder));
VerifierSettings.RegisterFileConverter<Image>((image, context) => ConvertImage(null, image, context, "png", encoder));
}

static void EncodeAs<TEncoder>(this VerifySettings settings, string extension, IImageEncoder? encoder)
Expand Down Expand Up @@ -80,31 +76,30 @@ public static SettingsTask EncodeAsJpeg(this SettingsTask settings, JpegEncoder?
public static void EncodeAsJpeg(this VerifySettings settings, JpegEncoder? encoder = null) =>
settings.EncodeAs<JpegEncoder>("jpg", encoder);

static ConversionResult ConvertBmp(string? name, Stream stream, IReadOnlyDictionary<string, object> context) =>
Convert<BmpEncoder>(name, BmpDecoder.Instance, stream, "bmp", context);

static ConversionResult ConvertBmp(Stream stream, IReadOnlyDictionary<string, object> context) =>
Convert<BmpEncoder>(BmpDecoder.Instance, stream, "bmp", context);

static ConversionResult ConvertGif(Stream stream, IReadOnlyDictionary<string, object> context) =>
Convert<GifEncoder>(GifDecoder.Instance, stream, "gif", context);
static ConversionResult ConvertGif(string? name, Stream stream, IReadOnlyDictionary<string, object> context) =>
Convert<GifEncoder>(name, GifDecoder.Instance, stream, "gif", context);

static ConversionResult ConvertJpg(Stream stream, IReadOnlyDictionary<string, object> context) =>
Convert<JpegEncoder>(JpegDecoder.Instance, stream, "jpg", context);
static ConversionResult ConvertJpg(string? name, Stream stream, IReadOnlyDictionary<string, object> context) =>
Convert<JpegEncoder>(name, JpegDecoder.Instance, stream, "jpg", context);

static ConversionResult ConvertPng(Stream stream, IReadOnlyDictionary<string, object> context) =>
Convert<PngEncoder>(PngDecoder.Instance, stream, "png", context);
static ConversionResult ConvertPng(string? name, Stream stream, IReadOnlyDictionary<string, object> context) =>
Convert<PngEncoder>(name, PngDecoder.Instance, stream, "png", context);

static ConversionResult ConvertTiff(Stream stream, IReadOnlyDictionary<string, object> context) =>
Convert<TiffEncoder>(TiffDecoder.Instance, stream, "tif", context);
static ConversionResult ConvertTiff(string? name, Stream stream, IReadOnlyDictionary<string, object> context) =>
Convert<TiffEncoder>(name, TiffDecoder.Instance, stream, "tif", context);

static ConversionResult Convert<TEncoder>(IImageDecoder decoder, Stream stream, string extension, IReadOnlyDictionary<string, object> context)
static ConversionResult Convert<TEncoder>(string? name, IImageDecoder decoder, Stream stream, string extension, IReadOnlyDictionary<string, object> 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<string, object> context, string extension, IImageEncoder encoder)
static ConversionResult ConvertImage(string? name, Image image, IReadOnlyDictionary<string, object> context, string extension, IImageEncoder encoder)
{
if (context.TryGetValue("ImageSharpEncoder", out var encoderValue))
{
Expand All @@ -116,6 +111,6 @@ static ConversionResult ConvertImage(Image image, IReadOnlyDictionary<string, ob
var info = image.GetInfo();
image.Save(stream, encoder);
stream.Position = 0;
return new(info, extension, stream);
return new(info, [new(extension, stream, name)]);
}
}