Browse Source

Merge branch 'js/gif-fixes' into js/png-pallete

pull/2485/head
James Jackson-South 3 years ago
parent
commit
c3ed86d135
  1. 2
      src/ImageSharp/Formats/Pbm/BufferedReadStreamExtensions.cs
  2. 7
      tests/ImageSharp.Tests/Formats/Gif/GifDecoderTests.cs
  3. 11
      tests/ImageSharp.Tests/Formats/Pbm/PbmMetadataTests.cs
  4. 47
      tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageComparer.cs
  5. 50
      tests/ImageSharp.Tests/TestUtilities/ImagingTestCaseUtility.cs
  6. 34
      tests/ImageSharp.Tests/TestUtilities/TestImageExtensions.cs
  7. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/00.png
  8. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/01.png
  9. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/02.png
  10. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/03.png
  11. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/04.png
  12. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/05.png
  13. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/06.png
  14. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/07.png
  15. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/08.png
  16. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/09.png
  17. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/10.png
  18. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/100.png
  19. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/101.png
  20. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/102.png
  21. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/103.png
  22. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/104.png
  23. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/105.png
  24. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/106.png
  25. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/107.png
  26. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/108.png
  27. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/109.png
  28. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/11.png
  29. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/110.png
  30. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/111.png
  31. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/112.png
  32. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/113.png
  33. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/114.png
  34. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/115.png
  35. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/116.png
  36. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/117.png
  37. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/118.png
  38. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/119.png
  39. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/12.png
  40. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/120.png
  41. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/121.png
  42. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/122.png
  43. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/123.png
  44. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/124.png
  45. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/125.png
  46. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/126.png
  47. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/127.png
  48. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/128.png
  49. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/129.png
  50. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/13.png
  51. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/130.png
  52. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/131.png
  53. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/132.png
  54. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/133.png
  55. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/134.png
  56. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/135.png
  57. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/136.png
  58. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/137.png
  59. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/138.png
  60. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/139.png
  61. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/14.png
  62. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/140.png
  63. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/141.png
  64. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/142.png
  65. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/143.png
  66. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/144.png
  67. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/145.png
  68. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/146.png
  69. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/147.png
  70. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/148.png
  71. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/149.png
  72. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/15.png
  73. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/150.png
  74. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/151.png
  75. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/152.png
  76. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/153.png
  77. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/154.png
  78. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/155.png
  79. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/156.png
  80. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/16.png
  81. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/17.png
  82. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/18.png
  83. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/19.png
  84. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/20.png
  85. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/21.png
  86. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/22.png
  87. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/23.png
  88. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/24.png
  89. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/25.png
  90. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/26.png
  91. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/27.png
  92. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/28.png
  93. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/29.png
  94. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/30.png
  95. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/31.png
  96. 4
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/32.png
  97. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/33.png
  98. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/34.png
  99. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/35.png
  100. 3
      tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/36.png

2
src/ImageSharp/Formats/Pbm/BufferedReadStreamExtensions.cs

@ -28,7 +28,7 @@ internal static class BufferedReadStreamExtensions
{
innerValue = stream.ReadByte();
}
while (innerValue != 0x0a);
while (innerValue is not 0x0a and not -0x1);
// Continue searching for whitespace.
val = innerValue;

7
tests/ImageSharp.Tests/Formats/Gif/GifDecoderTests.cs

@ -40,9 +40,12 @@ public class GifDecoderTests
public void Decode_Issue2450<TPixel>(TestImageProvider<TPixel> provider)
where TPixel : unmanaged, IPixel<TPixel>
{
// Images have many frames, only compare a selection of them.
static bool Predicate(int i, int _) => i % 8 == 0;
using Image<TPixel> image = provider.GetImage();
image.DebugSaveMultiFrame(provider);
image.CompareToReferenceOutputMultiFrame(provider, ImageComparer.Exact);
image.DebugSaveMultiFrame(provider, predicate: Predicate);
image.CompareToReferenceOutputMultiFrame(provider, ImageComparer.Exact, predicate: Predicate);
}
[Theory]

11
tests/ImageSharp.Tests/Formats/Pbm/PbmMetadataTests.cs

@ -1,6 +1,7 @@
// Copyright (c) Six Labors.
// Licensed under the Six Labors Split License.
using SixLabors.ImageSharp.Formats;
using SixLabors.ImageSharp.Formats.Pbm;
using static SixLabors.ImageSharp.Tests.TestImages.Pbm;
@ -80,4 +81,14 @@ public class PbmMetadataTests
Assert.NotNull(bitmapMetadata);
Assert.Equal(expectedComponentType, bitmapMetadata.ComponentType);
}
[Fact]
public void Identify_HandlesCraftedDenialOfServiceString()
{
byte[] bytes = Convert.FromBase64String("UDEjWAAACQAAAAA=");
ImageInfo info = Image.Identify(bytes);
Assert.Equal(default, info.Size);
Configuration.Default.ImageFormatsManager.TryFindFormatByFileExtension("pbm", out IImageFormat format);
Assert.Equal(format!, info.Metadata.DecodedImageFormat);
}
}

47
tests/ImageSharp.Tests/TestUtilities/ImageComparison/ImageComparer.cs

@ -46,19 +46,38 @@ public static class ImageComparerExtensions
public static IEnumerable<ImageSimilarityReport<TPixelA, TPixelB>> CompareImages<TPixelA, TPixelB>(
this ImageComparer comparer,
Image<TPixelA> expected,
Image<TPixelB> actual)
Image<TPixelB> actual,
Func<int, int, bool> predicate = null)
where TPixelA : unmanaged, IPixel<TPixelA>
where TPixelB : unmanaged, IPixel<TPixelB>
{
var result = new List<ImageSimilarityReport<TPixelA, TPixelB>>();
List<ImageSimilarityReport<TPixelA, TPixelB>> result = new();
if (expected.Frames.Count != actual.Frames.Count)
int expectedFrameCount = actual.Frames.Count;
if (predicate != null)
{
expectedFrameCount = 0;
for (int i = 0; i < actual.Frames.Count; i++)
{
if (predicate(i, actual.Frames.Count))
{
expectedFrameCount++;
}
}
}
if (expected.Frames.Count != expectedFrameCount)
{
throw new Exception("Frame count does not match!");
throw new ImagesSimilarityException("Frame count does not match!");
}
for (int i = 0; i < expected.Frames.Count; i++)
{
if (predicate != null && !predicate(i, expected.Frames.Count))
{
continue;
}
ImageSimilarityReport<TPixelA, TPixelB> report = comparer.CompareImagesOrFrames(i, expected.Frames[i], actual.Frames[i]);
if (!report.IsEmpty)
{
@ -72,7 +91,8 @@ public static class ImageComparerExtensions
public static void VerifySimilarity<TPixelA, TPixelB>(
this ImageComparer comparer,
Image<TPixelA> expected,
Image<TPixelB> actual)
Image<TPixelB> actual,
Func<int, int, bool> predicate = null)
where TPixelA : unmanaged, IPixel<TPixelA>
where TPixelB : unmanaged, IPixel<TPixelB>
{
@ -81,12 +101,25 @@ public static class ImageComparerExtensions
throw new ImageDimensionsMismatchException(expected.Size, actual.Size);
}
if (expected.Frames.Count != actual.Frames.Count)
int expectedFrameCount = actual.Frames.Count;
if (predicate != null)
{
expectedFrameCount = 0;
for (int i = 0; i < actual.Frames.Count; i++)
{
if (predicate(i, actual.Frames.Count))
{
expectedFrameCount++;
}
}
}
if (expected.Frames.Count != expectedFrameCount)
{
throw new ImagesSimilarityException("Image frame count does not match!");
}
IEnumerable<ImageSimilarityReport> reports = comparer.CompareImages(expected, actual);
IEnumerable<ImageSimilarityReport> reports = comparer.CompareImages(expected, actual, predicate);
if (reports.Any())
{
throw new ImageDifferenceIsOverThresholdException(reports);

50
tests/ImageSharp.Tests/TestUtilities/ImagingTestCaseUtility.cs

@ -184,7 +184,8 @@ public class ImagingTestCaseUtility
string extension = null,
object testOutputDetails = null,
bool appendPixelTypeToFileName = true,
bool appendSourceFileOrDescription = true)
bool appendSourceFileOrDescription = true,
Func<int, int, bool> predicate = null)
{
string baseDir = this.GetTestOutputFileName(string.Empty, testOutputDetails, appendPixelTypeToFileName, appendSourceFileOrDescription);
@ -195,8 +196,12 @@ public class ImagingTestCaseUtility
for (int i = 0; i < frameCount; i++)
{
string filePath = $"{baseDir}/{i:D2}.{extension}";
yield return filePath;
if (predicate != null && !predicate(i, frameCount))
{
continue;
}
yield return $"{baseDir}/{i:D2}.{extension}";
}
}
@ -205,27 +210,35 @@ public class ImagingTestCaseUtility
string extension = "png",
IImageEncoder encoder = null,
object testOutputDetails = null,
bool appendPixelTypeToFileName = true)
bool appendPixelTypeToFileName = true,
Func<int, int, bool> predicate = null)
where TPixel : unmanaged, IPixel<TPixel>
{
encoder = encoder ?? TestEnvironment.GetReferenceEncoder($"foo.{extension}");
encoder ??= TestEnvironment.GetReferenceEncoder($"foo.{extension}");
string[] files = this.GetTestOutputFileNamesMultiFrame(
image.Frames.Count,
extension,
testOutputDetails,
appendPixelTypeToFileName).ToArray();
appendPixelTypeToFileName,
predicate: predicate).ToArray();
for (int i = 0; i < image.Frames.Count; i++)
{
using (Image<TPixel> frameImage = image.Frames.CloneFrame(i))
if (predicate != null && !predicate(i, image.Frames.Count))
{
string filePath = files[i];
using (FileStream stream = File.OpenWrite(filePath))
{
frameImage.Save(stream, encoder);
}
continue;
}
if (i >= files.Length)
{
break;
}
using Image<TPixel> frameImage = image.Frames.CloneFrame(i);
string filePath = files[i];
using FileStream stream = File.OpenWrite(filePath);
frameImage.Save(stream, encoder);
}
return files;
@ -236,20 +249,17 @@ public class ImagingTestCaseUtility
object testOutputDetails,
bool appendPixelTypeToFileName,
bool appendSourceFileOrDescription)
{
return TestEnvironment.GetReferenceOutputFileName(
=> TestEnvironment.GetReferenceOutputFileName(
this.GetTestOutputFileName(extension, testOutputDetails, appendPixelTypeToFileName, appendSourceFileOrDescription));
}
public string[] GetReferenceOutputFileNamesMultiFrame(
int frameCount,
string extension,
object testOutputDetails,
bool appendPixelTypeToFileName = true)
{
return this.GetTestOutputFileNamesMultiFrame(frameCount, extension, testOutputDetails)
.Select(TestEnvironment.GetReferenceOutputFileName).ToArray();
}
bool appendPixelTypeToFileName = true,
Func<int, int, bool> predicate = null)
=> this.GetTestOutputFileNamesMultiFrame(frameCount, extension, testOutputDetails, appendPixelTypeToFileName, predicate: predicate)
.Select(TestEnvironment.GetReferenceOutputFileName).ToArray();
internal void Init(string typeName, string methodName, string outputSubfolderName)
{

34
tests/ImageSharp.Tests/TestUtilities/TestImageExtensions.cs

@ -67,10 +67,10 @@ public static class TestImageExtensions
provider.Utility.SaveTestOutputFile(
image,
extension,
encoder: encoder,
testOutputDetails: testOutputDetails,
appendPixelTypeToFileName: appendPixelTypeToFileName,
appendSourceFileOrDescription: appendSourceFileOrDescription,
encoder: encoder);
appendSourceFileOrDescription: appendSourceFileOrDescription);
return image;
}
@ -107,7 +107,8 @@ public static class TestImageExtensions
ITestImageProvider provider,
object testOutputDetails = null,
string extension = "png",
bool appendPixelTypeToFileName = true)
bool appendPixelTypeToFileName = true,
Func<int, int, bool> predicate = null)
where TPixel : unmanaged, IPixel<TPixel>
{
if (TestEnvironment.RunsWithCodeCoverage)
@ -119,7 +120,8 @@ public static class TestImageExtensions
image,
extension,
testOutputDetails: testOutputDetails,
appendPixelTypeToFileName: appendPixelTypeToFileName);
appendPixelTypeToFileName: appendPixelTypeToFileName,
predicate: predicate);
return image;
}
@ -237,7 +239,6 @@ public static class TestImageExtensions
ITestImageProvider provider,
FormattableString testOutputDetails,
string extension = "png",
bool grayscale = false,
bool appendPixelTypeToFileName = true,
bool appendSourceFileOrDescription = true)
where TPixel : unmanaged, IPixel<TPixel>
@ -246,7 +247,6 @@ public static class TestImageExtensions
provider,
(object)testOutputDetails,
extension,
grayscale,
appendPixelTypeToFileName,
appendSourceFileOrDescription);
@ -256,12 +256,11 @@ public static class TestImageExtensions
ITestImageProvider provider,
object testOutputDetails = null,
string extension = "png",
bool grayscale = false,
bool appendPixelTypeToFileName = true,
bool appendSourceFileOrDescription = true)
where TPixel : unmanaged, IPixel<TPixel>
{
using (var firstFrameOnlyImage = new Image<TPixel>(image.Width, image.Height))
using (Image<TPixel> firstFrameOnlyImage = new(image.Width, image.Height))
using (Image<TPixel> referenceImage = GetReferenceOutputImage<TPixel>(
provider,
testOutputDetails,
@ -284,8 +283,8 @@ public static class TestImageExtensions
ImageComparer comparer,
object testOutputDetails = null,
string extension = "png",
bool grayscale = false,
bool appendPixelTypeToFileName = true)
bool appendPixelTypeToFileName = true,
Func<int, int, bool> predicate = null)
where TPixel : unmanaged, IPixel<TPixel>
{
using (Image<TPixel> referenceImage = GetReferenceOutputImageMultiFrame<TPixel>(
@ -293,9 +292,10 @@ public static class TestImageExtensions
image.Frames.Count,
testOutputDetails,
extension,
appendPixelTypeToFileName))
appendPixelTypeToFileName,
predicate: predicate))
{
comparer.VerifySimilarity(referenceImage, image);
comparer.VerifySimilarity(referenceImage, image, predicate);
}
return image;
@ -332,16 +332,18 @@ public static class TestImageExtensions
int frameCount,
object testOutputDetails = null,
string extension = "png",
bool appendPixelTypeToFileName = true)
bool appendPixelTypeToFileName = true,
Func<int, int, bool> predicate = null)
where TPixel : unmanaged, IPixel<TPixel>
{
string[] frameFiles = provider.Utility.GetReferenceOutputFileNamesMultiFrame(
frameCount,
extension,
testOutputDetails,
appendPixelTypeToFileName);
appendPixelTypeToFileName,
predicate);
var temporaryFrameImages = new List<Image<TPixel>>();
List<Image<TPixel>> temporaryFrameImages = new();
IImageDecoder decoder = TestEnvironment.GetReferenceDecoder(frameFiles[0]);
@ -359,7 +361,7 @@ public static class TestImageExtensions
Image<TPixel> firstTemp = temporaryFrameImages[0];
var result = new Image<TPixel>(firstTemp.Width, firstTemp.Height);
Image<TPixel> result = new(firstTemp.Width, firstTemp.Height);
foreach (Image<TPixel> fi in temporaryFrameImages)
{

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/00.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c3cdb964aad36076ab02233f82eab7616c8b763fbf75f6cb17b8c38d69c76443
size 304
oid sha256:eb615374f4c680ed4b7e4922e6a0404446c520e254365a1c2406c3dcdad8d02f
size 2574

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/01.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:adda2f029171fcf7ee867bdc04f4bbf5c4c1992eacbe69b673fb337f11c56889
size 302

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/02.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:782df1adafc8ec5865c3d375042af25b3f15292780f4a2498da99fd0df4abf26
size 80613

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/03.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5c55f249b6c297a37387a9242c4e3d9f3a37ded7c31827e748d16cd51e91759a
size 80622

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/04.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fed4cbdf85eb80acadf49d3254e8637fa2497cf4773f263b087f020b59f3213a
size 80666

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/05.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e9fcb1d0fc7adc967f44fbbb6a876687a3cd40d6761f7ca79c6ad1777b8a5c27
size 80572

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/06.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a9bdd5378174e80c5d48b4ac15b00944c1cde69274c8fb9788625484f1a3e848
size 80742

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/07.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f3f53b5703f3a0963548bac0a222c1da5614df0aabf47b4dcbc64d87fc6057d3
size 80926

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/08.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a5c5742e4d4bbab99efd83c7a2dcfc0b1073283dc24d480da15c2ca9b660a607
size 80842
oid sha256:7ac936ace1ea78c3aa7fb099853e32140278f0ce1b5f27cc1ac68aa9d256d5d6
size 161248

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/09.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:aac1840358e6d49f9cdf1fdfaec46c7a53783a74d2c0d2418e94576cc515c5a8
size 80988

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/10.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4ad7afcf812e7b2c54d1a35bf679dc66a595785b6ed21be9b1ac0a0d3be7021b
size 81022

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/100.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b2d5d2a92ff3089e182b762cfd9848135fa2471ae457dc2e825fe15f88ebafe8
size 90646

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/101.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:043939303c791e358b6efc5a735db8b450ee67f46443d77020880109b1f50ec0
size 90063

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/102.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:65096d70821cd32ab9a82b738932356cdedaf81b225dbc205606fdd6bec0fd55
size 90187

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/103.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1ca39f84832d36206d1143fbdbce1cc3292782c9123c4f1a9074cc577bb11e1b
size 90645

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/104.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f7853f700649807e58b3ad30491337da1ba168b9e39ea5ed55235582e947e84e
size 90737
oid sha256:5cc1406b0b5c7fd60f539414249007112224388b2cc27785833cf229e1078c81
size 181703

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/105.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:cc4442952eb03f1289e7e22c33da5fe78175f93673f98a62b2a75855fe197ea1
size 89983

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/106.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a0663168c15142cba35f1de1855f9823c1a3b4ee75ef5b2153b6306e8f3890ad
size 90471

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/107.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:550f4527ccf9698d4d67b9136974530d780191439648de6ecfe8dcdf1f3a3346
size 90291

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/108.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d6850f89ff854dc286ddb53d7568e2c60be7bcb38f6f01f806e3329b785af860
size 90550

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/109.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a8d32f6419f42b5cdb27ff74195553ab14af71589ec82826840e0b29f8e5bd60
size 90795

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/11.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b06038174968095d91b149d6d6bbe4eb6d5512c1f03c782027538481dd4d7522
size 81038

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/110.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bc580f96657c211030ca6c72bf6170fb04a5772541ca25e4889039c8ea16f074
size 89545

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/111.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b5c521c01a541f3ec0cb10bb24063c913bc08aac8a3d25776f3fd5aa31c59554
size 89598

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/112.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c276752cef8561b4a62a9b603be641d45e0b7f8b2e768ce8d7c27bb49b9cda9b
size 90470
oid sha256:0fa21bee072c1e2563770759c6fb95f7dc16e467e9aa9e29c5ab482acdbee170
size 182851

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/113.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fc76499d1727ed39c2b6a08d5a5d46d6c59b2d557f95addba884761b1e8a983e
size 90039

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/114.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8e7563ca91a86aea26d649f72b24205cadd014480816c48c900b452859e05c88
size 90744

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/115.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1e6e62f57aa793240276cc0f0ea97a1b6291baf7dce572920eab2ba09fe2eb45
size 90893

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/116.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:308002fc980a329c5d18981a4a94e64899e7d5c1881e66f7329fd357c20463aa
size 91100

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/117.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4aac1f9446939b9a2170b8ae7959030a67fc648d28840f859669b70c2a8455a8
size 91121

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/118.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:af66e8710ddac5f7ea54b7d20071fa24eeaed1b0d287448af4683a0166be0a96
size 90963

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/119.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3bf3419704ebb0679cf0a7193af10e3bba12d15ed5ca6427af5de49621ea52e1
size 90859

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/12.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:833d4ea63528961a170443b227a9dd02faeeaf1c483d4f72ec0b4e608cbc16d0
size 81095

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/120.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5d4ffb85d7d7486eb27611c74dd2eb3d5b4f8f81d7f86e3bdf6c4b495eb37d1c
size 90775
oid sha256:da813a5f5bbbf95f7f5c8464bdab10d1a7cb7b5f60169b64910f650b98056b3a
size 183582

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/121.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b90d80e6bf96e5ed2236e8310d2834d083d27aff967035b5767b1b8868bce2e6
size 91223

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/122.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2ad49b7a27cf63d025b0b0aeaac5a2e7cf5a9a11ca2ae0a7a4e658d1ed5b999a
size 90644

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/123.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b1fca2cce7ee6edaf47dcabbdcc3f134e8185778449933f6b8ec11716667cd9a
size 90688

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/124.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c9cf616f46500b85fca0259316ebc0987ad847377981ea532fd804efbbc7ceea
size 90814

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/125.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3a265a8a55bf7e45390168fb3e0851c9f55549ffbb287289120506b371e39867
size 90809

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/126.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0009f8098652dce0f75831823a592fd63d01ad9b16a58ad49e96f320a20e2a76
size 90810

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/127.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b054a3b3b1e2218cb2309dcb540f2d0ccea1c3499edf408174bf778ac21279c4
size 90854

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/128.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f2b6e2fc76144ce475007700d6be278d5308aef7e8d2fa3d0cc9c419967c395e
size 90543
oid sha256:e12217fb78a91a18b0d2110ce1c38159534647e49e9f8390ae8b33eda1bf1046
size 183390

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/129.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9307016c702527df9497b124c70b06b5c51c9a81abda1a8031d5641814dc675e
size 90570

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/13.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3da499346f5160e5f1a63b48e822a93ac0a022f99a5206b521631e8058923a02
size 81070

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/130.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3566ad9a244e15ef8cb05c0b36c6fa80b60d35e5419d7995a3f12eb87a61dcdf
size 90560

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/131.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:124e86127a063eb135b0fb4f11d8195f940ed99995e41482db9d4f826ce00aa0
size 90442

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/132.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2cfa9f35cb5d09bbbf77bea47d493576df232ebe6f62d190ac1f186abbf0074c
size 91076

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/133.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d7b243ba5ba552250abae243d049b30c0ae38aef61b2b17982eb0ff034ac73f1
size 91105

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/134.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:461eb6bf55b1fcc720baebea9ae7404cd437bd534f58ed391b72360e0b222dbb
size 91070

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/135.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:31cc9ee5552b470ca46e4559bff12b1163e159b9394d758414f1cddf3dd7b6b7
size 90432

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/136.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2ca147ca90fb4f09f07f4df297217b0da88f640d11d94c7cb9040a084a09bd11
size 91145
oid sha256:f62ad66be6a04c50b47e1a047e54a177bbaf97ff8a3e4a170e114c3dcc2386c7
size 183231

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/137.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3ef4be0ff52d54a3ff71b88d3e751d39d36e3ef7b3b7b0f803912282dc39375e
size 90438

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/138.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:38bcab10db96c367d3e4d39b4bc5a77423bc1c27e7cfb4ab09810f293f392e19
size 91124

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/139.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:51a494f2600c46dffe2b8160c16bdf0982b4a00fb9cbf8a5cb399f8015a2d3ed
size 91137

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/14.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:62aab9d77fecdd00e3274c7f9b1355b8023ca95860ff78352a20a588d6fb2c19
size 80756

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/140.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a97b9230eafa5ce2ef87229172d7a4cd899b917005caf09d65cde600b0058dfe
size 91097

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/141.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9e651932e4b2fcc8b678094febacffe3b9a9c88a4bd685dc329eb20150f922a8
size 91160

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/142.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a91a8c5452fb698d3f482b3c94e8d0f165a5a6544f2202ba28f2b587a2630ce0
size 90562

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/143.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:97fe0a7756c3a6db31f05da9c6f4d1ef5e884a89276ee3e826d630d633c4d4a3
size 91216

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/144.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5fbf83374eee52013921f064ff2f6b3228d2b3ab4d7feb531c9271d930e716a4
size 91063
oid sha256:1f91b0f28197e2dc9e2e010c32ae2c2cc79568c2e9158b40e383e88eb8d299f8
size 183209

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/145.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:62160c2267597134d2f17f9fec796bd49a616c2c4245877c65023a58d0d295e1
size 91175

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/146.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:da652da914ce3d93fdcdbba84cd305433f3d8136fff4a2090467099ee1449c9b
size 90756

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/147.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:da652da914ce3d93fdcdbba84cd305433f3d8136fff4a2090467099ee1449c9b
size 90756

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/148.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:62160c2267597134d2f17f9fec796bd49a616c2c4245877c65023a58d0d295e1
size 91175

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/149.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:50d8b8ff77ad4a3e9d1e13d595fe0cc6a5adc1b1d858ebcb3790bd16a2f73cb2
size 90712

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/15.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0ae506a1118ace979328e734809a5f485ab83f21da5d8d61cc97891378eeaac2
size 83239

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/150.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2bb4c96cbb53bac6dd209ebfa92aaed295be1896c2d693ba9e4d962a86129d88
size 90340

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/151.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:54d9bdd9e29f371e5136edbddac0f053c671faf32be2bf7e0fc730029e430b75
size 90665

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/152.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:78085a65f1aa683f09b51ada512bb959b9df5dfc977d1d5ebe64eab5aac90a97
size 90627
oid sha256:b17a8715a14e63e7b68f77a41eb15ce07f11fc4e652b27b1c071fda9182aa4e7
size 183214

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/153.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1e52291d1c328f02e377795a8e91b84ba6cda1154691b9d95cd2b0a562d420de
size 91549

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/154.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1e52291d1c328f02e377795a8e91b84ba6cda1154691b9d95cd2b0a562d420de
size 91549

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/155.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1e52291d1c328f02e377795a8e91b84ba6cda1154691b9d95cd2b0a562d420de
size 91549

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/156.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1cb3a5b6e629416a49bb8d07d63ee938143f251e378288b9042d0fb2ae7c1f77
size 97680

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/16.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e2aed3183e03f4a8584b73ba05b19e6afd716702ff3274882f53efe1dee26ed8
size 83360
oid sha256:ed78b0a881154b7867c749f4375a1341611d155aa100821211d76c70cacf70ae
size 166536

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/17.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:32205de5eaf6401c3cb2b76f6c03c30df5fab9155885223b5a586079e1e0970d
size 83295

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/18.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2b65723e9f68a6ca1c0e0c62a30dd9d1c12c5b0c039d8349f813f59380666c53
size 84097

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/19.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c63463a59b0a522691c8183f6f9c05e19adcc99189885139236af0693f9a6353
size 83758

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/20.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5de8be56644a16b52d740d9d31be5948524dc093c0cb2440ad31dd0978227202
size 84012

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/21.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2a988693f2fc435445b0c9715a7900877b034391934228b0cd82017e181f785c
size 85506

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/22.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1eb6ec971d615b2fa63e179292e412a7b2da440fbd8bc8adc7a98191a6775a70
size 85576

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/23.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:525f92878be95186f1cd80d16946d6fa5673225396eef91396ca9bad3319a3c4
size 86021

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/24.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:efa27089c7e13adcbed4320423211b29d76931aa6f60c4b432c712410ace0a39
size 86068
oid sha256:f9c5ac7c97d903588ecd73205e85c732b72a708c35f1e88b3402f01e1a996222
size 172363

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/25.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:309ca3a3533c62a77fa4f9e1550998c34f2c61e13647c923808c007bb77e24b1
size 86311

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/26.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:353a0f661ca24bc353b0fb76d9a84134620fa4f7a867326b05c1fdf5d6e99d80
size 86583

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/27.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:98c1cf1c2378f3e6850c1c29a1a1a5c5041f7ffc8a7cc85d01034c5e7dabdc08
size 86556

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/28.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bf87ee7ce8ee67bd80549cf5d73b0678d40c4b0d9541e91a67e3570ebb40ca8e
size 86543

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/29.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:961141884be8843665e1a49633ba64995c1c3180071676aa6f4349dc9ce76178
size 86556

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/30.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5bad967fd018d21d0e6baf314dbd097382f40ee221642eb62dd542e19e6e2d69
size 86518

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/31.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:96e64876e783307fc9406f3a803c248aa7efe284739e67171afd0dfb9a06e1ba
size 86466

4
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/32.png

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c1a9c1cdcc9dcba627c808969eeaa375b1ad19914a8d869c96b930fed377eaef
size 86489
oid sha256:f56c8daa27477f2e20702176f01a1e35f40a250d461fc3d5c3f4ded436b81dd9
size 173335

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/33.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6d4459a8b8693b683f294bd8e243f5acf59b07e8b6f4f2997ee0057243c6b3b5
size 86443

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/34.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6d0ad71c14229f92edbf75831b5445b6fa2f10b729cfd2fff353867485c0c31d
size 86474

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/35.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:dc899d9e0d5b5927f6c9c58bd3353a4763e94d20e2a0d1e6b2fee84f977d286d
size 86501

3
tests/Images/External/ReferenceOutput/GifDecoderTests/Decode_Issue2450_Rgba32_issue_2450.gif/36.png

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:1091ea6a809ab826e8eab80b4772545204f25f37a8dfd1cb81b373d1f0884b02
size 86703

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save