DEBUG and RELEASE mode
01.png
Exception happened when optimizing or comparing the image:
SixLabors.ImageSharp.ImageFormatException: Unknown filter type.
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.DecodePixelData[TPixel](Stream compressedStream, ImageFrame`1 image, PngMetadata pngMetadata)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.ReadScanlines[TPixel](PngChunk chunk, ImageFrame`1 image, PngMetadata pngMetadata)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.Decode[TPixel](Stream stream)
at SixLabors.ImageSharp.Image.Decode[TPixel](Stream stream, Configuration config)
at SixLabors.ImageSharp.Image.WithSeekableStream[T](Configuration config, Stream stream, Func`2 action)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, Stream stream, IImageFormat& format)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, String path)
at DeveImageOptimizer.Helpers.ImageComparer.LoadImageHelper(String imagePath, List`1 tempFiles, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 34
at DeveImageOptimizer.Helpers.ImageComparer.AreImagesEqual(String image1Path, String image2Path, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 56
at DeveImageOptimizer.Helpers.ImageComparer.<>c__DisplayClass0_0.<AreImagesEqualAsync>b__0() in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 20
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
--- End of stack trace from previous location where exception was thrown ---
at DeveImageOptimizer.FileProcessing.FileOptimizerProcessor.OptimizeFile(String fileToOptimize, String originDirectory) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\FileProcessing\FileOptimizerProcessor.cs:line 100

03.png
Exception happened when optimizing or comparing the image:
System.IO.InvalidDataException: The archive entry was compressed using an unsupported compression method.
at System.IO.Compression.Inflater.Inflate(FlushCode flushCode)
at System.IO.Compression.Inflater.ReadInflateOutput(Byte* bufPtr, Int32 length, FlushCode flushCode, Int32& bytesRead)
at System.IO.Compression.Inflater.InflateVerified(Byte* bufPtr, Int32 length)
at System.IO.Compression.DeflateStream.ReadCore(Span`1 buffer)
at System.IO.Compression.DeflateStream.Read(Byte[] array, Int32 offset, Int32 count)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.DecodePixelData[TPixel](Stream compressedStream, ImageFrame`1 image, PngMetadata pngMetadata)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.ReadScanlines[TPixel](PngChunk chunk, ImageFrame`1 image, PngMetadata pngMetadata)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.Decode[TPixel](Stream stream)
at SixLabors.ImageSharp.Image.Decode[TPixel](Stream stream, Configuration config)
at SixLabors.ImageSharp.Image.WithSeekableStream[T](Configuration config, Stream stream, Func`2 action)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, Stream stream, IImageFormat& format)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, String path)
at DeveImageOptimizer.Helpers.ImageComparer.LoadImageHelper(String imagePath, List`1 tempFiles, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 34
at DeveImageOptimizer.Helpers.ImageComparer.AreImagesEqual(String image1Path, String image2Path, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 56
at DeveImageOptimizer.Helpers.ImageComparer.<>c__DisplayClass0_0.<AreImagesEqualAsync>b__0() in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 20
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
--- End of stack trace from previous location where exception was thrown ---
at DeveImageOptimizer.FileProcessing.FileOptimizerProcessor.OptimizeFile(String fileToOptimize, String originDirectory) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\FileProcessing\FileOptimizerProcessor.cs:line 100

03_1.png
Exception happened when optimizing or comparing the image:
SixLabors.ImageSharp.ImageFormatException: Invalid window size for ZLIB header: cinfo=12
at SixLabors.ImageSharp.Formats.Png.Zlib.ZlibInflateStream.InitializeInflateStream(Boolean isCriticalChunk)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.ReadScanlines[TPixel](PngChunk chunk, ImageFrame`1 image, PngMetadata pngMetadata)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.Decode[TPixel](Stream stream)
at SixLabors.ImageSharp.Image.Decode[TPixel](Stream stream, Configuration config)
at SixLabors.ImageSharp.Image.WithSeekableStream[T](Configuration config, Stream stream, Func`2 action)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, Stream stream, IImageFormat& format)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, String path)
at DeveImageOptimizer.Helpers.ImageComparer.LoadImageHelper(String imagePath, List`1 tempFiles, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 34
at DeveImageOptimizer.Helpers.ImageComparer.AreImagesEqual(String image1Path, String image2Path, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 56
at DeveImageOptimizer.Helpers.ImageComparer.<>c__DisplayClass0_0.<AreImagesEqualAsync>b__0() in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 20
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
--- End of stack trace from previous location where exception was thrown ---
at DeveImageOptimizer.FileProcessing.FileOptimizerProcessor.OptimizeFile(String fileToOptimize, String originDirectory) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\FileProcessing\FileOptimizerProcessor.cs:line 100

05.png
Exception happened when optimizing or comparing the image:
SixLabors.ImageSharp.ImageFormatException: Bad method for ZLIB header: cmf=254
at SixLabors.ImageSharp.Formats.Png.Zlib.ZlibInflateStream.InitializeInflateStream(Boolean isCriticalChunk)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.ReadScanlines[TPixel](PngChunk chunk, ImageFrame`1 image, PngMetadata pngMetadata)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.Decode[TPixel](Stream stream)
at SixLabors.ImageSharp.Image.Decode[TPixel](Stream stream, Configuration config)
at SixLabors.ImageSharp.Image.WithSeekableStream[T](Configuration config, Stream stream, Func`2 action)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, Stream stream, IImageFormat& format)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, String path)
at DeveImageOptimizer.Helpers.ImageComparer.LoadImageHelper(String imagePath, List`1 tempFiles, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 34
at DeveImageOptimizer.Helpers.ImageComparer.AreImagesEqual(String image1Path, String image2Path, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 56
at DeveImageOptimizer.Helpers.ImageComparer.<>c__DisplayClass0_0.<AreImagesEqualAsync>b__0() in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 20
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
--- End of stack trace from previous location where exception was thrown ---
at DeveImageOptimizer.FileProcessing.FileOptimizerProcessor.OptimizeFile(String fileToOptimize, String originDirectory) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\FileProcessing\FileOptimizerProcessor.cs:line 100

05_3.png
Exception happened when optimizing or comparing the image:
SixLabors.ImageSharp.ImageFormatException: Bad method for ZLIB header: cmf=1
at SixLabors.ImageSharp.Formats.Png.Zlib.ZlibInflateStream.InitializeInflateStream(Boolean isCriticalChunk)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.ReadScanlines[TPixel](PngChunk chunk, ImageFrame`1 image, PngMetadata pngMetadata)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.Decode[TPixel](Stream stream)
at SixLabors.ImageSharp.Image.Decode[TPixel](Stream stream, Configuration config)
at SixLabors.ImageSharp.Image.WithSeekableStream[T](Configuration config, Stream stream, Func`2 action)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, Stream stream, IImageFormat& format)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, String path)
at DeveImageOptimizer.Helpers.ImageComparer.LoadImageHelper(String imagePath, List`1 tempFiles, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 34
at DeveImageOptimizer.Helpers.ImageComparer.AreImagesEqual(String image1Path, String image2Path, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 56
at DeveImageOptimizer.Helpers.ImageComparer.<>c__DisplayClass0_0.<AreImagesEqualAsync>b__0() in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 20
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
--- End of stack trace from previous location where exception was thrown ---
at DeveImageOptimizer.FileProcessing.FileOptimizerProcessor.OptimizeFile(String fileToOptimize, String originDirectory) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\FileProcessing\FileOptimizerProcessor.cs:line 100

08_1.png
Exception happened when optimizing or comparing the image:
SixLabors.ImageSharp.ImageFormatException: Invalid window size for ZLIB header: cinfo=15
at SixLabors.ImageSharp.Formats.Png.Zlib.ZlibInflateStream.InitializeInflateStream(Boolean isCriticalChunk)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.ReadScanlines[TPixel](PngChunk chunk, ImageFrame`1 image, PngMetadata pngMetadata)
at SixLabors.ImageSharp.Formats.Png.PngDecoderCore.Decode[TPixel](Stream stream)
at SixLabors.ImageSharp.Image.Decode[TPixel](Stream stream, Configuration config)
at SixLabors.ImageSharp.Image.WithSeekableStream[T](Configuration config, Stream stream, Func`2 action)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, Stream stream, IImageFormat& format)
at SixLabors.ImageSharp.Image.Load[TPixel](Configuration config, String path)
at DeveImageOptimizer.Helpers.ImageComparer.LoadImageHelper(String imagePath, List`1 tempFiles, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 34
at DeveImageOptimizer.Helpers.ImageComparer.AreImagesEqual(String image1Path, String image2Path, Boolean useImageSharpBugWorkaround) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 56
at DeveImageOptimizer.Helpers.ImageComparer.<>c__DisplayClass0_0.<AreImagesEqualAsync>b__0() in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\Helpers\ImageComparer.cs:line 20
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location where exception was thrown ---
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot)
--- End of stack trace from previous location where exception was thrown ---
at DeveImageOptimizer.FileProcessing.FileOptimizerProcessor.OptimizeFile(String fileToOptimize, String originDirectory) in C:\XKanWeg\##TempImageOptimizerFailingImagesInvest\DeveImageOptimizer\DeveImageOptimizer\FileProcessing\FileOptimizerProcessor.cs:line 100
Call Image.Load<Rgba32>(imagePath); on the images above.
It looks like we've hit a hard limitation of the .NET DeflateStream implementation. Turning off all sanitation code to ensure that the image matches the specification allows only partial decoding of some of the images. Not really sure how we can ever work around the issue without re-implementing using a zlib port.



Fixed by the amazing @brianpopow !
Can confirm this is now fixed!
https://ci.appveyor.com/project/devedse/deveimageoptimizer/builds/28106287
Most helpful comment
Fixed by the amazing @brianpopow !