Skip to content

Commit

Permalink
Merge pull request #6337 from RedShy/p2pa_images_conversion
Browse files Browse the repository at this point in the history
Fix "P"->"PA" image conversion
  • Loading branch information
hugovk committed Jun 1, 2022
2 parents b261e17 + 7f39a21 commit 37c6423
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 1 deletion.
Binary file added Tests/images/tiny.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 14 additions & 0 deletions Tests/test_image_convert.py
Expand Up @@ -222,6 +222,20 @@ def test_p_la():
assert_image_similar(alpha, comparable, 5)


def test_p2pa_alpha():
with Image.open("Tests/images/tiny.png") as im:
assert im.mode == "P"

im_pa = im.convert("PA")
assert im_pa.mode == "PA"

im_a = im_pa.getchannel("A")
for x in range(4):
alpha = 255 if x > 1 else 0
for y in range(4):
assert im_a.getpixel((x, y)) == alpha


def test_matrix_illegal_conversion():
# Arrange
im = hopper("CMYK")
Expand Down
2 changes: 1 addition & 1 deletion src/libImaging/Convert.c
Expand Up @@ -1031,7 +1031,7 @@ p2pa(UINT8 *out, const UINT8 *in, int xsize, ImagingPalette palette) {
int x;
int rgb = strcmp(palette->mode, "RGB");
for (x = 0; x < xsize; x++, in++) {
const UINT8 *rgba = &palette->palette[in[0]];
const UINT8 *rgba = &palette->palette[in[0] * 4];
*out++ = in[0];
*out++ = in[0];
*out++ = in[0];
Expand Down

0 comments on commit 37c6423

Please sign in to comment.