APNGs with a ColorProfileTransform may not blend properly |
||
Issue descriptionSee [1]. In this case, we intend to blend src_ptr onto dst_row, either premultiplying with ImageFrame::BlendRGBAPremultiplied or not with ImageFrame::BlendRGBARaw. But above [2], if there is a ColorProfileTransform, src_ptr is set to point to dst_row, after doing color conversion and copying into dst_row. Meaning that we skipped actual blending, and then attempt to blend the src onto itself. This looks to have been a problem since APNG code was added. We've likely never noticed because the following combination of features would be necessary: - APNG image with a frame that blends onto a prior frame and has alpha - a color profile that requires conversion [1] https://chromium.googlesource.com/chromium/src/+/b7a3fd5d28f223b18d5d8660aa57ce190678b921/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc#625 [2] https://chromium.googlesource.com/chromium/src/+/b7a3fd5d28f223b18d5d8660aa57ce190678b921/third_party/blink/renderer/platform/image-decoders/png/png_image_decoder.cc#595 brianosman@ noticed this and said he would fix it up as he changed some code in this area.
,
May 24 2018
|
||
►
Sign in to add a comment |
||
Comment 1 by bugdroid1@chromium.org
, May 24 2018