Improvements to Apple CgBI PNG handling
Merged
ER
3mo ago+816+816+012345678901234567890123456789-617-617-012345678901234567890123456789
Prerequisites
- I have written a descriptive pull-request title
- I have verified that there are no overlapping pull-requests open
- I have verified that I am following the existing coding patterns and practice as demonstrated in the repository. These follow strict Stylecop rules :cop:.
- I have provided test coverage for my change (where applicable)
Description
Following on from #3136 , this attempts to streamline and improve the related code as well as improve test coverage.
- CgBI images that are not supported are now explicitly rejected (i.e. bit depth != 8 or truecolor)
- Broke out ChunkedReadStream from ZlibInflateStream to separate the concerns instead of mixing modes in ZlibInflateStream
- Broke out CgBI transform from PngDecoderCore into new PngCgbiProcessor static class
- Added tests for PngCgbiProcessor
- Small improvements to the CgBI shuffle methods (e.g. construct the shuffle patterns only once, remove redundant floor(), replace magic numbers where possible)