Оба изображения имеют прозрачность, просто у одного белые пиксели сделаны прозрачными, а у другого черные пиксели прозрачными.Еще один способ сказать то же самое: основной цвет прозрачных пикселей - черный на одном изображении и белый на другом.Вы не можете видеть разницу, потому что они прозрачны!
Вот lenna1
с удаленным альфа-слоем слева, а затем сам альфа-слой справа:
А вот lenna2
с удаленным альфа-слоем слева, а затем сам альфа-слой справа:
Вы можете сделать их одинаковыми, найдя все прозрачные пиксели и сделав их белыми, например:
# Load the image and make into Numpy array
rgba = np.array(Image.open('lena2.png'))
# Make image transparent white anywhere it is transparent
rgba[rgba[...,-1]==0] = [255,255,255,0]
# Make back into PIL Image and save
Image.fromarray(rgba).save('result.png')
Если вы хотите, чтобы прозрачные пиксели были видимыми синим,вы можете увидеть их для тестирования, используйте:
rgba[rgba[...,-1]==0] = [0,0,255,255]
Если у вас установлено ImageMagick , вы можете заставить все прозрачные пиксели стать цветом по вашему выбору, скажем, пурпурным,в терминале:
magick lenna1.png -background magenta -alpha background result.png
Это часто означает, что вы можете улучшить сжатие PNG и уменьшить размеры файлов PNG, сделав все прозрачные пиксели черными, и в результате изображение, вероятно, будет сжиматься намного лучше, чем если бы прозрачные пикселивсе дико отличаютсяEnt цвета:
magick image.png -background black -alpha background result.png