diff --git a/src/codecs/ico/decoder.rs b/src/codecs/ico/decoder.rs index b7fe270996..8876fb3b4f 100644 --- a/src/codecs/ico/decoder.rs +++ b/src/codecs/ico/decoder.rs @@ -396,8 +396,8 @@ impl ImageDecoder for IcoDecoder { } if mask_byte & (1 << bit) != 0 { - // Set alpha channel to transparent. - row[x as usize][3] = 0; + // Set pixel to fully transparent. + row[x as usize] = [0, 0, 0, 0]; } x += 1; diff --git a/tests/reference/ico/images/bmp-24bpp-mask.ico.png b/tests/reference/ico/images/bmp-24bpp-mask.ico.png index 77b763e723..0972df0482 100644 Binary files a/tests/reference/ico/images/bmp-24bpp-mask.ico.png and b/tests/reference/ico/images/bmp-24bpp-mask.ico.png differ diff --git a/tests/reference/ico/images/bmp-32bpp-alpha.ico.png b/tests/reference/ico/images/bmp-32bpp-alpha.ico.png index 77b763e723..0972df0482 100644 Binary files a/tests/reference/ico/images/bmp-32bpp-alpha.ico.png and b/tests/reference/ico/images/bmp-32bpp-alpha.ico.png differ