From cbb1ba56e9481846d0e31f821730b08e489f727e Mon Sep 17 00:00:00 2001 From: Anton Firszov Date: Sun, 27 Aug 2017 04:51:41 +0200 Subject: [PATCH] jpeg420small.jpg --- .../Formats/Jpg/ComponentUtilsTests.cs | 13 ++++++++----- .../Formats/Jpg/JpegDecoderTests.cs | 3 ++- .../Formats/Jpg/JpegProfilingBenchmarks.cs | 2 +- tests/ImageSharp.Tests/TestImages.cs | 5 +++-- tests/Images/External | 2 +- tests/Images/Input/Jpg/baseline/jpeg420small.jpg | Bin 0 -> 5276 bytes 6 files changed, 15 insertions(+), 10 deletions(-) create mode 100644 tests/Images/Input/Jpg/baseline/jpeg420small.jpg diff --git a/tests/ImageSharp.Tests/Formats/Jpg/ComponentUtilsTests.cs b/tests/ImageSharp.Tests/Formats/Jpg/ComponentUtilsTests.cs index b547993b5d..cdaf5fa3b5 100644 --- a/tests/ImageSharp.Tests/Formats/Jpg/ComponentUtilsTests.cs +++ b/tests/ImageSharp.Tests/Formats/Jpg/ComponentUtilsTests.cs @@ -84,12 +84,13 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg } [Theory] - [InlineData(TestImages.Jpeg.Baseline.Calliphora, 1)] - [InlineData(TestImages.Jpeg.Baseline.Jpeg444, 1)] - [InlineData(TestImages.Jpeg.Baseline.Jpeg420, 2)] + [InlineData(TestImages.Jpeg.Baseline.Jpeg444, 1, 1)] + [InlineData(TestImages.Jpeg.Baseline.Jpeg420Exif, 2, 2)] + [InlineData(TestImages.Jpeg.Baseline.Jpeg420Small, 2, 2)] public void CalculateJpegChannelSizes_YCbCr( string imageFile, - int chromaDiv) + int hDiv, + int vDiv) { using (OrigJpegDecoderCore decoder = JpegFixture.ParseStream(imageFile)) { @@ -98,7 +99,9 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg Assert.Equal(3, s.Length); Size ySize = decoder.Components[0].SizeInBlocks() * 8; - Size cSize = ySize / chromaDiv; + Size cSize = ySize; + cSize.Width /= hDiv; + cSize.Height /= vDiv; Assert.Equal(ySize, s[0]); Assert.Equal(cSize, s[1]); diff --git a/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs b/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs index 6dd1da351b..098fc1c77d 100644 --- a/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/Jpg/JpegDecoderTests.cs @@ -28,6 +28,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg TestImages.Jpeg.Baseline.Cmyk, TestImages.Jpeg.Baseline.Ycck, TestImages.Jpeg.Baseline.Jpeg400, + TestImages.Jpeg.Baseline.Jpeg420Small, TestImages.Jpeg.Baseline.Jpeg444, TestImages.Jpeg.Baseline.Testimgorig, TestImages.Jpeg.Baseline.Bad.BadEOF, @@ -255,7 +256,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg [Fact] public void Decoder_Reads_Correct_Resolution_From_Exif() { - using (Image image = TestFile.Create(TestImages.Jpeg.Baseline.Jpeg420).CreateImage()) + using (Image image = TestFile.Create(TestImages.Jpeg.Baseline.Jpeg420Exif).CreateImage()) { Assert.Equal(72, image.MetaData.HorizontalResolution); Assert.Equal(72, image.MetaData.VerticalResolution); diff --git a/tests/ImageSharp.Tests/Formats/Jpg/JpegProfilingBenchmarks.cs b/tests/ImageSharp.Tests/Formats/Jpg/JpegProfilingBenchmarks.cs index 113596ee8f..792836cf8e 100644 --- a/tests/ImageSharp.Tests/Formats/Jpg/JpegProfilingBenchmarks.cs +++ b/tests/ImageSharp.Tests/Formats/Jpg/JpegProfilingBenchmarks.cs @@ -26,7 +26,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg TestImages.Jpeg.Baseline.Ycck, TestImages.Jpeg.Baseline.Calliphora, TestImages.Jpeg.Baseline.Jpeg400, - TestImages.Jpeg.Baseline.Jpeg420, + TestImages.Jpeg.Baseline.Jpeg420Exif, TestImages.Jpeg.Baseline.Jpeg444, }; diff --git a/tests/ImageSharp.Tests/TestImages.cs b/tests/ImageSharp.Tests/TestImages.cs index 3fdbecf50d..ba082fe564 100644 --- a/tests/ImageSharp.Tests/TestImages.cs +++ b/tests/ImageSharp.Tests/TestImages.cs @@ -99,15 +99,16 @@ namespace SixLabors.ImageSharp.Tests public const string Snake = "Jpg/baseline/Snake.jpg"; public const string Lake = "Jpg/baseline/Lake.jpg"; public const string Jpeg400 = "Jpg/baseline/jpeg400jfif.jpg"; - public const string Jpeg420 = "Jpg/baseline/jpeg420exif.jpg"; + public const string Jpeg420Exif = "Jpg/baseline/jpeg420exif.jpg"; public const string Jpeg444 = "Jpg/baseline/jpeg444.jpg"; + public const string Jpeg420Small = "Jpg/baseline/jpeg420small.jpg"; public const string Testimgorig = "Jpg/baseline/testorig.jpg"; public static readonly string[] All = { Cmyk, Ycck, Exif, Floorplan, Calliphora, Turtle, GammaDalaiLamaGray, - Hiyamugi, Jpeg400, Jpeg420, Jpeg444, + Hiyamugi, Jpeg400, Jpeg420Exif, Jpeg444, }; } diff --git a/tests/Images/External b/tests/Images/External index 2f6b226b9f..d91054b0e0 160000 --- a/tests/Images/External +++ b/tests/Images/External @@ -1 +1 @@ -Subproject commit 2f6b226b9fbaf8b23808755bd7e7752a0560644e +Subproject commit d91054b0e00001ea90e3098f7057c741893365c4 diff --git a/tests/Images/Input/Jpg/baseline/jpeg420small.jpg b/tests/Images/Input/Jpg/baseline/jpeg420small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f4c3f47364a378a31aa2189f3e2eff6475f95196 GIT binary patch literal 5276 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