From ae577bba8738a3c497915958de7948768fb63945 Mon Sep 17 00:00:00 2001 From: Ildar Khayrutdinov Date: Sat, 11 Sep 2021 22:27:03 +0300 Subject: [PATCH] Add BigTiff decoder tests --- .../Formats/Tiff/BigTiffDecoderTests.cs | 35 +++ .../Formats/Tiff/TiffDecoderBaseTester.cs | 32 +++ .../Formats/Tiff/TiffDecoderTests.cs | 22 +- tests/ImageSharp.Tests/TestImages.cs | 15 ++ tests/Images/Input/Tiff/BigTiff/BigTIFF.tif | 3 + .../Images/Input/Tiff/BigTiff/BigTIFFLong.tif | 3 + .../Input/Tiff/BigTiff/BigTIFFLong8.tif | 3 + .../Input/Tiff/BigTiff/BigTIFFLong8Tiles.tif | 3 + .../Input/Tiff/BigTiff/BigTIFFMotorola.tif | 3 + .../BigTiff/BigTIFFMotorolaLongStrips.tif | 3 + .../Input/Tiff/BigTiff/BigTIFFSamples.html | 239 ++++++++++++++++++ .../Input/Tiff/BigTiff/BigTIFFSubIFD4.tif | 3 + .../Input/Tiff/BigTiff/BigTIFFSubIFD8.tif | 3 + tests/Images/Input/Tiff/BigTiff/Classic.tif | 3 + tests/Images/Input/Tiff/BigTiff/readme.md | 3 + 15 files changed, 353 insertions(+), 20 deletions(-) create mode 100644 tests/ImageSharp.Tests/Formats/Tiff/BigTiffDecoderTests.cs create mode 100644 tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderBaseTester.cs create mode 100644 tests/Images/Input/Tiff/BigTiff/BigTIFF.tif create mode 100644 tests/Images/Input/Tiff/BigTiff/BigTIFFLong.tif create mode 100644 tests/Images/Input/Tiff/BigTiff/BigTIFFLong8.tif create mode 100644 tests/Images/Input/Tiff/BigTiff/BigTIFFLong8Tiles.tif create mode 100644 tests/Images/Input/Tiff/BigTiff/BigTIFFMotorola.tif create mode 100644 tests/Images/Input/Tiff/BigTiff/BigTIFFMotorolaLongStrips.tif create mode 100644 tests/Images/Input/Tiff/BigTiff/BigTIFFSamples.html create mode 100644 tests/Images/Input/Tiff/BigTiff/BigTIFFSubIFD4.tif create mode 100644 tests/Images/Input/Tiff/BigTiff/BigTIFFSubIFD8.tif create mode 100644 tests/Images/Input/Tiff/BigTiff/Classic.tif create mode 100644 tests/Images/Input/Tiff/BigTiff/readme.md diff --git a/tests/ImageSharp.Tests/Formats/Tiff/BigTiffDecoderTests.cs b/tests/ImageSharp.Tests/Formats/Tiff/BigTiffDecoderTests.cs new file mode 100644 index 0000000000..fc507513ba --- /dev/null +++ b/tests/ImageSharp.Tests/Formats/Tiff/BigTiffDecoderTests.cs @@ -0,0 +1,35 @@ +// Copyright (c) Six Labors. +// Licensed under the Apache License, Version 2.0. + +// ReSharper disable InconsistentNaming +using System; +using SixLabors.ImageSharp.PixelFormats; + +using Xunit; + +using static SixLabors.ImageSharp.Tests.TestImages.BigTiff; + +namespace SixLabors.ImageSharp.Tests.Formats.Tiff +{ + [Collection("RunSerial")] + [Trait("Format", "Tiff")] + [Trait("Format", "BigTiff")] + public class BigTiffDecoderTests : TiffDecoderBaseTester + { + [Theory] + [WithFile(BigTIFF, PixelTypes.Rgba32)] + [WithFile(BigTIFFLong, PixelTypes.Rgba32)] + [WithFile(BigTIFFLong8, PixelTypes.Rgba32)] + [WithFile(BigTIFFMotorola, PixelTypes.Rgba32)] + [WithFile(BigTIFFMotorolaLongStrips, PixelTypes.Rgba32)] + [WithFile(BigTIFFSubIFD4, PixelTypes.Rgba32)] + [WithFile(BigTIFFSubIFD8, PixelTypes.Rgba32)] + public void TiffDecoder_CanDecode(TestImageProvider provider) + where TPixel : unmanaged, IPixel => TestTiffDecoder(provider); + + [Theory] + [WithFile(BigTIFFLong8Tiles, PixelTypes.Rgba32)] + public void ThrowsNotSupported(TestImageProvider provider) + where TPixel : unmanaged, IPixel => Assert.Throws(() => provider.GetImage(TiffDecoder)); + } +} diff --git a/tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderBaseTester.cs b/tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderBaseTester.cs new file mode 100644 index 0000000000..ff70eaf8ab --- /dev/null +++ b/tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderBaseTester.cs @@ -0,0 +1,32 @@ +// Copyright (c) Six Labors. +// Licensed under the Apache License, Version 2.0. + +// ReSharper disable InconsistentNaming +using SixLabors.ImageSharp.Formats; +using SixLabors.ImageSharp.Formats.Tiff; +using SixLabors.ImageSharp.PixelFormats; +using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison; +using SixLabors.ImageSharp.Tests.TestUtilities.ReferenceCodecs; + +using Xunit; + +namespace SixLabors.ImageSharp.Tests.Formats.Tiff +{ + public abstract class TiffDecoderBaseTester + { + protected static TiffDecoder TiffDecoder => new TiffDecoder(); + + protected static MagickReferenceDecoder ReferenceDecoder => new MagickReferenceDecoder(); + + protected static void TestTiffDecoder(TestImageProvider provider, IImageDecoder referenceDecoder = null, bool useExactComparer = true, float compareTolerance = 0.001f) + where TPixel : unmanaged, IPixel + { + using Image image = provider.GetImage(TiffDecoder); + image.DebugSave(provider); + image.CompareToOriginal( + provider, + useExactComparer ? ImageComparer.Exact : ImageComparer.Tolerant(compareTolerance), + referenceDecoder ?? ReferenceDecoder); + } + } +} diff --git a/tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderTests.cs b/tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderTests.cs index b64d22991f..e49f459321 100644 --- a/tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/Tiff/TiffDecoderTests.cs @@ -4,12 +4,9 @@ // ReSharper disable InconsistentNaming using System; using System.IO; -using SixLabors.ImageSharp.Formats; -using SixLabors.ImageSharp.Formats.Tiff; using SixLabors.ImageSharp.Metadata; using SixLabors.ImageSharp.PixelFormats; using SixLabors.ImageSharp.Tests.TestUtilities.ImageComparison; -using SixLabors.ImageSharp.Tests.TestUtilities.ReferenceCodecs; using Xunit; @@ -19,20 +16,16 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff { [Collection("RunSerial")] [Trait("Format", "Tiff")] - public class TiffDecoderTests + public class TiffDecoderTests : TiffDecoderBaseTester { public static readonly string[] MultiframeTestImages = Multiframes; - private static TiffDecoder TiffDecoder => new TiffDecoder(); - - private static MagickReferenceDecoder ReferenceDecoder => new MagickReferenceDecoder(); - [Theory] [WithFile(RgbUncompressedTiled, PixelTypes.Rgba32)] [WithFile(MultiframeDifferentSize, PixelTypes.Rgba32)] [WithFile(MultiframeDifferentVariants, PixelTypes.Rgba32)] public void ThrowsNotSupported(TestImageProvider provider) - where TPixel : unmanaged, IPixel => Assert.Throws(() => provider.GetImage(TiffDecoder)); + where TPixel : unmanaged, IPixel => Assert.Throws(() => provider.GetImage(TiffDecoder)); [Theory] [InlineData(RgbUncompressed, 24, 256, 256, 300, 300, PixelResolutionUnit.PixelsPerInch)] @@ -397,16 +390,5 @@ namespace SixLabors.ImageSharp.Tests.Formats.Tiff image.DebugSaveMultiFrame(provider); image.CompareToOriginalMultiFrame(provider, ImageComparer.Exact, ReferenceDecoder); } - - private static void TestTiffDecoder(TestImageProvider provider, IImageDecoder referenceDecoder = null, bool useExactComparer = true, float compareTolerance = 0.001f) - where TPixel : unmanaged, IPixel - { - using Image image = provider.GetImage(TiffDecoder); - image.DebugSave(provider); - image.CompareToOriginal( - provider, - useExactComparer ? ImageComparer.Exact : ImageComparer.Tolerant(compareTolerance), - referenceDecoder ?? ReferenceDecoder); - } } } diff --git a/tests/ImageSharp.Tests/TestImages.cs b/tests/ImageSharp.Tests/TestImages.cs index d1a6624af2..9df6472a15 100644 --- a/tests/ImageSharp.Tests/TestImages.cs +++ b/tests/ImageSharp.Tests/TestImages.cs @@ -672,5 +672,20 @@ namespace SixLabors.ImageSharp.Tests public static readonly string[] Metadata = { SampleMetadata }; } + + public static class BigTiff + { + public const string BasePath = "Tiff/BigTiff/"; + + public const string BigTIFF = BasePath + "BigTIFF.tif"; + public const string BigTIFFLong = BasePath + "BigTIFFLong.tif"; + public const string BigTIFFLong8 = BasePath + "BigTIFFLong8.tif"; + public const string BigTIFFLong8Tiles = BasePath + "BigTIFFLong8Tiles.tif"; + public const string BigTIFFMotorola = BasePath + "BigTIFFMotorola.tif"; + public const string BigTIFFMotorolaLongStrips = BasePath + "BigTIFFMotorolaLongStrips.tif"; + + public const string BigTIFFSubIFD4 = BasePath + "BigTIFFSubIFD4.tif"; + public const string BigTIFFSubIFD8 = BasePath + "BigTIFFSubIFD8.tif"; + } } } diff --git a/tests/Images/Input/Tiff/BigTiff/BigTIFF.tif b/tests/Images/Input/Tiff/BigTiff/BigTIFF.tif new file mode 100644 index 0000000000..b278344796 --- /dev/null +++ b/tests/Images/Input/Tiff/BigTiff/BigTIFF.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ddb202145a9bce7670cc372ee578de5a53cd52cc8d5ae8a9ebdc9f9c4f4a7e81 +size 12480 diff --git a/tests/Images/Input/Tiff/BigTiff/BigTIFFLong.tif b/tests/Images/Input/Tiff/BigTiff/BigTIFFLong.tif new file mode 100644 index 0000000000..b390c0a97f --- /dev/null +++ b/tests/Images/Input/Tiff/BigTiff/BigTIFFLong.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:90178643a159ec50335e9314836df924233debeb100763af0f77cd1be3cf58ab +size 12480 diff --git a/tests/Images/Input/Tiff/BigTiff/BigTIFFLong8.tif b/tests/Images/Input/Tiff/BigTiff/BigTIFFLong8.tif new file mode 100644 index 0000000000..e1815c7501 --- /dev/null +++ b/tests/Images/Input/Tiff/BigTiff/BigTIFFLong8.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b38e61ccb01e10e26fb10c335fc6fca9ad087b0fb0df833e54bb02d1246e20d5 +size 12480 diff --git a/tests/Images/Input/Tiff/BigTiff/BigTIFFLong8Tiles.tif b/tests/Images/Input/Tiff/BigTiff/BigTIFFLong8Tiles.tif new file mode 100644 index 0000000000..c69218948a --- /dev/null +++ b/tests/Images/Input/Tiff/BigTiff/BigTIFFLong8Tiles.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2d92b0c430cefc390f13961e00950ee7246b013335594dd249ba823eb3c3fdb +size 12564 diff --git a/tests/Images/Input/Tiff/BigTiff/BigTIFFMotorola.tif b/tests/Images/Input/Tiff/BigTiff/BigTIFFMotorola.tif new file mode 100644 index 0000000000..68c2b3a417 --- /dev/null +++ b/tests/Images/Input/Tiff/BigTiff/BigTIFFMotorola.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ace8a27dbed9f918993615e545a12310b84ad94bc6af8e256258e69731f1c7ce +size 12480 diff --git a/tests/Images/Input/Tiff/BigTiff/BigTIFFMotorolaLongStrips.tif b/tests/Images/Input/Tiff/BigTiff/BigTIFFMotorolaLongStrips.tif new file mode 100644 index 0000000000..cc62e0362f --- /dev/null +++ b/tests/Images/Input/Tiff/BigTiff/BigTIFFMotorolaLongStrips.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c5ebdc3774955d3b47644f57bd023e764a93ca2271118152ae920b34c1784bb +size 12480 diff --git a/tests/Images/Input/Tiff/BigTiff/BigTIFFSamples.html b/tests/Images/Input/Tiff/BigTiff/BigTIFFSamples.html new file mode 100644 index 0000000000..c674e57b58 --- /dev/null +++ b/tests/Images/Input/Tiff/BigTiff/BigTIFFSamples.html @@ -0,0 +1,239 @@ + + + + +

+ These images were created by AWare Systems. +

+

Index

+

+ Classic.tif
+ BigTIFF.tif
+ BigTIFFMotorola.tif
+ BigTIFFLong.tif
+ BigTIFFLong8.tif
+ BigTIFFMotorolaLongStrips.tif
+ BigTIFFLong8Tiles.tif
+ BigTIFFSubIFD4.tif
+ BigTIFFSubIFD8.tif
+

+

Classic.tif

+

+ Classic.tif is a basic Classic TIFF file. All files in this package have the same actual image content, + so this TIFF file serves as a reference. +

+

+ Format: Classic TIFF
+ Byte Order: Intel
+ Ifd Offset: 12302
+     ImageWidth (1 Short): 64
+     ImageLength (1 Short): 64
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Short): 8
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 64
+     StripByteCounts (1 Short): 12288
+

+

BigTIFF.tif

+

+ BigTIFF.tif ressembles Classic.tif as close as possible. Except that it's a BigTIFF, that is... +

+

+ Format: BigTIFF
+ Byte Order: Intel
+ Ifd Offset: 12304
+     ImageWidth (1 Short): 64
+     ImageLength (1 Short): 64
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Short): 16
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 64
+     StripByteCounts (1 Short): 12288
+

+

BigTIFFMotorola.tif

+

+ BigTIFFMotorola.tif reverses the byte order. +

+

+ Format: BigTIFF
+ Byte Order: Motorola
+ Ifd Offset: 12304
+     ImageWidth (1 Short): 64
+     ImageLength (1 Short): 64
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Short): 16
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 64
+     StripByteCounts (1 Short): 12288
+

+

BigTIFFLong.tif

+

+ All previous TIFFs specify DataType Short for StripOffsets and StripByteCounts tags. This BigTIFF instead specifies DataType Long, for these tags. +

+

+ Format: BigTIFF
+ Byte Order: Intel
+ Ifd Offset: 12304
+     ImageWidth (1 Short): 64
+     ImageLength (1 Short): 64
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Long): 16
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 64
+     StripByteCounts (1 Long): 12288
+

+

BigTIFFLong8.tif

+

+ This next one specifies DataType Long8, for StripOffsets and StripByteCounts tags. +

+

+ Format: BigTIFF
+ Byte Order: Intel
+ Ifd Offset: 12304
+     ImageWidth (1 Short): 64
+     ImageLength (1 Short): 64
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Long8): 16
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 64
+     StripByteCounts (1 Long8): 12288
+

+

BigTIFFMotorolaLongStrips.tif

+

+ This BigTIFF has Motorola byte order, plus, it's divided over two strips. StripOffsets and StripByteCounts tags have DataType Long, so their actual value fits inside the IFD. +

+

+ Format: BigTIFF
+ Byte Order: Motorola
+ Ifd Offset: 12304
+     ImageWidth (1 Short): 64
+     ImageLength (1 Short): 64
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (2 Long): 16, 6160
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 32
+     StripByteCounts (2 Long): 6144, 6144
+

+

BigTIFFLong8Tiles.tif

+

+ BigTIFFLong8Tiles.tif is a tiled BigTIFF. TileOffsets and TileByteCounts tags specify DataType Long8. +

+

+ Format: BigTIFF
+ Byte Order: Intel
+ Ifd Offset: 12368
+     ImageWidth (1 Short): 64
+     ImageLength (1 Short): 64
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     SamplesPerPixel (1 Short): 3
+     TileWidth (1 Short): 32
+     TileLength (1 Short): 32
+     TileOffsets (4 Long8): 16, 3088, 6160, 9232
+     TileByteCounts (4 Long8): 3072, 3072, 3072, 3072
+

+

BigTIFFSubIFD4.tif

+

+ This BigTIFF contains two pages, the second page showing almost the same image content as the first, except that the black square is white, and text color is black. + Both pages point to a downsample SubIFD, using SubIFDs DataType TIFF_IFD. +

+

+ Format: BigTIFF
+ Byte Order: Intel
+ Ifd Offset: 15572
+     ImageWidth (1 Short): 64
+     ImageLength (1 Short): 64
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Short): 3284
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 64
+     StripByteCounts (1 Short): 12288
+     SubIFDs (1 IFD): 3088
+ SubIfd Offset: 3088
+     NewSubFileType (1 Long): 1
+     ImageWidth (1 Short): 32
+     ImageLength (1 Short): 32
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Short): 16
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 32
+     StripByteCounts (1 Short): 3072
+ Ifd Offset: 31324
+     ImageWidth (1 Short): 64
+     ImageLength (1 Short): 64
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Short): 19036
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 64
+     StripByteCounts (1 Short): 12288
+     SubIFDs (1 IFD): 18840
+ SubIfd Offset: 18840
+     NewSubFileType (1 Long): 1
+     ImageWidth (1 Short): 32
+     ImageLength (1 Short): 32
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Short): 15768
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 32
+     StripByteCounts (1 Short): 3072
+

+

BigTIFFSubIFD8.tif

+

+ BigTIFFSubIFD4.tif is very much the same as BigTIFFSubIFD4.tif, except that the new DataType TIFF_IFD8 is used for the SubIFDs tag. +

+

+ Format: BigTIFF
+ Byte Order: Intel
+ Ifd Offset: 15572
+     ImageWidth (1 Short): 64
+     ImageLength (1 Short): 64
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Short): 3284
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 64
+     StripByteCounts (1 Short): 12288
+     SubIFDs (1 IFD8): 3088
+ SubIfd Offset: 3088
+     NewSubFileType (1 Long): 1
+     ImageWidth (1 Short): 32
+     ImageLength (1 Short): 32
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Short): 16
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 32
+     StripByteCounts (1 Short): 3072
+ Ifd Offset: 31324
+     ImageWidth (1 Short): 64
+     ImageLength (1 Short): 64
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Short): 19036
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 64
+     StripByteCounts (1 Short): 12288
+     SubIFDs (1 IFD8): 18840
+ SubIfd Offset: 18840
+     NewSubFileType (1 Long): 1
+     ImageWidth (1 Short): 32
+     ImageLength (1 Short): 32
+     BitsPerSample (3 Short): 8, 8, 8
+     PhotometricInterpretation (1 Short): RGB
+     StripOffsets (1 Short): 15768
+     SamplesPerPixel (1 Short): 3
+     RowsPerStrip (1 Short): 32
+     StripByteCounts (1 Short): 3072
+

+ + diff --git a/tests/Images/Input/Tiff/BigTiff/BigTIFFSubIFD4.tif b/tests/Images/Input/Tiff/BigTiff/BigTIFFSubIFD4.tif new file mode 100644 index 0000000000..cd7bdf0b59 --- /dev/null +++ b/tests/Images/Input/Tiff/BigTiff/BigTIFFSubIFD4.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85c8da46abc2284f0ddac10bd03a7c98ee51024840b7e43f41f1c6a09bc02e7e +size 31520 diff --git a/tests/Images/Input/Tiff/BigTiff/BigTIFFSubIFD8.tif b/tests/Images/Input/Tiff/BigTiff/BigTIFFSubIFD8.tif new file mode 100644 index 0000000000..bb0b3bf189 --- /dev/null +++ b/tests/Images/Input/Tiff/BigTiff/BigTIFFSubIFD8.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93e5ac30f507bec7936746ad6e109631c09f9b2332081e986063219ad2452a4a +size 31520 diff --git a/tests/Images/Input/Tiff/BigTiff/Classic.tif b/tests/Images/Input/Tiff/BigTiff/Classic.tif new file mode 100644 index 0000000000..1fa6be78b7 --- /dev/null +++ b/tests/Images/Input/Tiff/BigTiff/Classic.tif @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cfa7fcf6927be5de644beb238067479e8d834d0cbe2257b00302f5dde84a1c1a +size 12404 diff --git a/tests/Images/Input/Tiff/BigTiff/readme.md b/tests/Images/Input/Tiff/BigTiff/readme.md new file mode 100644 index 0000000000..be5d28906a --- /dev/null +++ b/tests/Images/Input/Tiff/BigTiff/readme.md @@ -0,0 +1,3 @@ +BigTIFF samples. + +Downloaded from AWARE SYSTEMS: https://www.awaresystems.be/imaging/tiff/bigtiff.html \ No newline at end of file