diff --git a/tests/ImageSharp.Tests/Formats/Tiff/ImageExtensionsTest.cs b/tests/ImageSharp.Tests/Formats/Tiff/ImageExtensionsTest.cs index cc72560acd..3ead9776fa 100644 --- a/tests/ImageSharp.Tests/Formats/Tiff/ImageExtensionsTest.cs +++ b/tests/ImageSharp.Tests/Formats/Tiff/ImageExtensionsTest.cs @@ -13,12 +13,15 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff [Trait("Format", "Tiff")] public class ImageExtensionsTest { + private readonly Configuration configuration; + public ImageExtensionsTest() { - Configuration.Default.ImageFormatsManager.AddImageFormat(TiffFormat.Instance); - Configuration.Default.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector()); - Configuration.Default.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder()); - Configuration.Default.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder()); + this.configuration = new Configuration(); + this.configuration.ImageFormatsManager.AddImageFormat(TiffFormat.Instance); + this.configuration.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector()); + this.configuration.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder()); + this.configuration.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder()); } [Fact] @@ -27,12 +30,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageExtensionsTest)); string file = Path.Combine(dir, "SaveAsTiff_Path.tiff"); - using (var image = new Image(10, 10)) + using (var image = new Image(this.configuration, 10, 10)) { image.SaveAsTiff(file); } - using (Image.Load(file, out IImageFormat mime)) + using (Image.Load(this.configuration, file, out IImageFormat mime)) { Assert.Equal("image/tiff", mime.DefaultMimeType); } @@ -44,12 +47,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageExtensionsTest)); string file = Path.Combine(dir, "SaveAsTiffAsync_Path.tiff"); - using (var image = new Image(10, 10)) + using (var image = new Image(this.configuration, 10, 10)) { await image.SaveAsTiffAsync(file); } - using (Image.Load(file, out IImageFormat mime)) + using (Image.Load(this.configuration, file, out IImageFormat mime)) { Assert.Equal("image/tiff", mime.DefaultMimeType); } @@ -61,12 +64,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageExtensions)); string file = Path.Combine(dir, "SaveAsTiff_Path_Encoder.tiff"); - using (var image = new Image(10, 10)) + using (var image = new Image(this.configuration, 10, 10)) { image.SaveAsTiff(file, new TiffEncoder()); } - using (Image.Load(file, out IImageFormat mime)) + using (Image.Load(this.configuration, file, out IImageFormat mime)) { Assert.Equal("image/tiff", mime.DefaultMimeType); } @@ -78,12 +81,12 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff string dir = TestEnvironment.CreateOutputDirectory(nameof(ImageExtensions)); string file = Path.Combine(dir, "SaveAsTiffAsync_Path_Encoder.tiff"); - using (var image = new Image(10, 10)) + using (var image = new Image(this.configuration, 10, 10)) { await image.SaveAsTiffAsync(file, new TiffEncoder()); } - using (Image.Load(file, out IImageFormat mime)) + using (Image.Load(this.configuration, file, out IImageFormat mime)) { Assert.Equal("image/tiff", mime.DefaultMimeType); } @@ -94,14 +97,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { using var memoryStream = new MemoryStream(); - using (var image = new Image(10, 10)) + using (var image = new Image(this.configuration, 10, 10)) { image.SaveAsTiff(memoryStream); } memoryStream.Position = 0; - using (Image.Load(memoryStream, out IImageFormat mime)) + using (Image.Load(this.configuration, memoryStream, out IImageFormat mime)) { Assert.Equal("image/tiff", mime.DefaultMimeType); } @@ -112,14 +115,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { using var memoryStream = new MemoryStream(); - using (var image = new Image(10, 10)) + using (var image = new Image(this.configuration, 10, 10)) { await image.SaveAsTiffAsync(memoryStream); } memoryStream.Position = 0; - using (Image.Load(memoryStream, out IImageFormat mime)) + using (Image.Load(this.configuration, memoryStream, out IImageFormat mime)) { Assert.Equal("image/tiff", mime.DefaultMimeType); } @@ -130,14 +133,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { using var memoryStream = new MemoryStream(); - using (var image = new Image(10, 10)) + using (var image = new Image(this.configuration, 10, 10)) { image.SaveAsTiff(memoryStream, new TiffEncoder()); } memoryStream.Position = 0; - using (Image.Load(memoryStream, out IImageFormat mime)) + using (Image.Load(this.configuration, memoryStream, out IImageFormat mime)) { Assert.Equal("image/tiff", mime.DefaultMimeType); } @@ -148,14 +151,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { using var memoryStream = new MemoryStream(); - using (var image = new Image(10, 10)) + using (var image = new Image(this.configuration, 10, 10)) { await image.SaveAsTiffAsync(memoryStream, new TiffEncoder()); } memoryStream.Position = 0; - using (Image.Load(memoryStream, out IImageFormat mime)) + using (Image.Load(this.configuration, memoryStream, out IImageFormat mime)) { Assert.Equal("image/tiff", mime.DefaultMimeType); } diff --git a/tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderTests.cs b/tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderTests.cs index 90430fe115..c7b48e4ce8 100644 --- a/tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderTests.cs @@ -28,11 +28,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff private static MagickReferenceDecoder ReferenceDecoder => new MagickReferenceDecoder(); + private readonly Configuration configuration; + public TiffDecoderTests() { - Configuration.Default.ImageFormatsManager.AddImageFormat(TiffFormat.Instance); - Configuration.Default.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector()); - Configuration.Default.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder()); + this.configuration = new Configuration(); + this.configuration.ImageFormatsManager.AddImageFormat(TiffFormat.Instance); + this.configuration.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector()); + this.configuration.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder()); } [Theory] @@ -52,7 +55,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff var testFile = TestFile.Create(imagePath); using (var stream = new MemoryStream(testFile.Bytes, false)) { - IImageInfo info = Image.Identify(stream); + IImageInfo info = Image.Identify(this.configuration, stream); Assert.Equal(expectedPixelSize, info.PixelType?.BitsPerPixel); Assert.Equal(expectedWidth, info.Width); @@ -72,14 +75,14 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff var testFile = TestFile.Create(imagePath); using (var stream = new MemoryStream(testFile.Bytes, false)) { - IImageInfo info = Image.Identify(stream); + IImageInfo info = Image.Identify(this.configuration, stream); Assert.NotNull(info.Metadata); Assert.Equal(expectedByteOrder, info.Metadata.GetTiffMetadata().ByteOrder); stream.Seek(0, SeekOrigin.Begin); - using var img = Image.Load(stream); + using var img = Image.Load(this.configuration, stream); Assert.Equal(expectedByteOrder, img.Metadata.GetTiffMetadata().ByteOrder); } } diff --git a/tests/ImageSharp.Tests/Formats/Tiff/TiffEncoderTests.cs b/tests/ImageSharp.Tests/Formats/Tiff/TiffEncoderTests.cs index a7e55d7002..ddc453f672 100644 --- a/tests/ImageSharp.Tests/Formats/Tiff/TiffEncoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/Tiff/TiffEncoderTests.cs @@ -21,20 +21,15 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { private static readonly IImageDecoder ReferenceDecoder = new MagickReferenceDecoder(); - public static readonly TheoryData TiffBitsPerPixelFiles = - new TheoryData - { - { Calliphora_BiColorUncompressed, TiffBitsPerPixel.Pixel1 }, - { GrayscaleUncompressed, TiffBitsPerPixel.Pixel8 }, - { RgbUncompressed, TiffBitsPerPixel.Pixel24 }, - }; + private readonly Configuration configuration; public TiffEncoderTests() { - Configuration.Default.ImageFormatsManager.AddImageFormat(TiffFormat.Instance); - Configuration.Default.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector()); - Configuration.Default.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder()); - Configuration.Default.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder()); + this.configuration = new Configuration(); + this.configuration.ImageFormatsManager.AddImageFormat(TiffFormat.Instance); + this.configuration.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector()); + this.configuration.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder()); + this.configuration.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder()); } [Theory] @@ -70,20 +65,22 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff // assert memStream.Position = 0; - using var output = Image.Load(memStream); + using var output = Image.Load(this.configuration, memStream); TiffMetadata meta = output.Metadata.GetTiffMetadata(); Assert.Equal(expectedBitsPerPixel, meta.BitsPerPixel); Assert.Equal(expectedCompression, meta.Compression); } [Theory] - [MemberData(nameof(TiffBitsPerPixelFiles))] - public void TiffEncoder_PreserveBitsPerPixel(string imagePath, TiffBitsPerPixel expectedBitsPerPixel) + [WithFile(Calliphora_BiColorUncompressed, PixelTypes.Rgba32, TiffBitsPerPixel.Pixel1)] + [WithFile(GrayscaleUncompressed, PixelTypes.Rgba32, TiffBitsPerPixel.Pixel8)] + [WithFile(RgbUncompressed, PixelTypes.Rgba32, TiffBitsPerPixel.Pixel24)] + public void TiffEncoder_PreserveBitsPerPixel(TestImageProvider provider, TiffBitsPerPixel expectedBitsPerPixel) + where TPixel : unmanaged, IPixel { // arrange var tiffEncoder = new TiffEncoder(); - var testFile = TestFile.Create(imagePath); - using Image input = testFile.CreateRgba32Image(); + using Image input = provider.GetImage(); using var memStream = new MemoryStream(); // act @@ -91,7 +88,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff // assert memStream.Position = 0; - using var output = Image.Load(memStream); + using var output = Image.Load(this.configuration, memStream); TiffMetadata meta = output.Metadata.GetTiffMetadata(); Assert.Equal(expectedBitsPerPixel, meta.BitsPerPixel); } @@ -163,7 +160,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.None }; - TiffEncoderPaletteTest(provider, encoder); + this.TiffEncoderPaletteTest(provider, encoder); } [Theory] @@ -173,7 +170,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.Deflate }; - TiffEncoderPaletteTest(provider, encoder); + this.TiffEncoderPaletteTest(provider, encoder); } [Theory] @@ -183,7 +180,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.Deflate, UseHorizontalPredictor = true }; - TiffEncoderPaletteTest(provider, encoder); + this.TiffEncoderPaletteTest(provider, encoder); } [Theory] @@ -193,7 +190,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.Lzw }; - TiffEncoderPaletteTest(provider, encoder); + this.TiffEncoderPaletteTest(provider, encoder); } [Theory] @@ -203,7 +200,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.Lzw, UseHorizontalPredictor = true }; - TiffEncoderPaletteTest(provider, encoder); + this.TiffEncoderPaletteTest(provider, encoder); } [Theory] @@ -213,10 +210,10 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { var encoder = new TiffEncoder { Mode = TiffEncodingMode.ColorPalette, Compression = TiffEncoderCompression.PackBits }; - TiffEncoderPaletteTest(provider, encoder); + this.TiffEncoderPaletteTest(provider, encoder); } - private static void TiffEncoderPaletteTest(TestImageProvider provider, TiffEncoder encoder) + private void TiffEncoderPaletteTest(TestImageProvider provider, TiffEncoder encoder) where TPixel : unmanaged, IPixel { // Because a quantizer is used to create the palette (and therefore changes to the original are expected), @@ -228,7 +225,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff image.Save(memStream, encoder); memStream.Position = 0; - using var encodedImage = (Image)Image.Load(memStream); + using var encodedImage = (Image)Image.Load(this.configuration, memStream); var encodedImagePath = provider.Utility.SaveTestOutputFile(encodedImage, "tiff", encoder); TiffTestUtils.CompareWithReferenceDecoder(encodedImagePath, encodedImage); } diff --git a/tests/ImageSharp.Tests/Formats/Tiff/TiffMetadataTests.cs b/tests/ImageSharp.Tests/Formats/Tiff/TiffMetadataTests.cs index 4afbb5469d..db6c86c4c1 100644 --- a/tests/ImageSharp.Tests/Formats/Tiff/TiffMetadataTests.cs +++ b/tests/ImageSharp.Tests/Formats/Tiff/TiffMetadataTests.cs @@ -17,12 +17,15 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff [Trait("Format", "Tiff")] public class TiffMetadataTests { + private readonly Configuration configuration; + public TiffMetadataTests() { - Configuration.Default.ImageFormatsManager.AddImageFormat(TiffFormat.Instance); - Configuration.Default.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector()); - Configuration.Default.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder()); - Configuration.Default.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder()); + this.configuration = new Configuration(); + this.configuration.ImageFormatsManager.AddImageFormat(TiffFormat.Instance); + this.configuration.ImageFormatsManager.AddImageFormatDetector(new TiffImageFormatDetector()); + this.configuration.ImageFormatsManager.SetDecoder(TiffFormat.Instance, new TiffDecoder()); + this.configuration.ImageFormatsManager.SetEncoder(TiffFormat.Instance, new TiffEncoder()); } [Fact] @@ -58,7 +61,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff var testFile = TestFile.Create(imagePath); using var stream = new MemoryStream(testFile.Bytes, false); - IImageInfo imageInfo = Image.Identify(stream); + IImageInfo imageInfo = Image.Identify(this.configuration, stream); Assert.NotNull(imageInfo); TiffMetadata tiffMetadata = imageInfo.Metadata.GetTiffMetadata(); @@ -79,7 +82,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff var testFile = TestFile.Create(imagePath); using var stream = new MemoryStream(testFile.Bytes, false); - IImageInfo imageInfo = Image.Identify(stream); + IImageInfo imageInfo = Image.Identify(this.configuration, stream); Assert.NotNull(imageInfo); TiffMetadata tiffMetadata = imageInfo.Metadata.GetTiffMetadata(); @@ -95,7 +98,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff var testFile = TestFile.Create(imagePath); using var stream = new MemoryStream(testFile.Bytes, false); - IImageInfo imageInfo = Image.Identify(stream); + IImageInfo imageInfo = Image.Identify(this.configuration, stream); Assert.NotNull(imageInfo); TiffMetadata tiffMetadata = imageInfo.Metadata.GetTiffMetadata();