pil.image.getdata() returns jpeg 和 png 文件的不同像素信息

pil.image.getdata() returns different pixel information for jpeg and png file

我正在尝试使用

获取两个不同图像文件(.jpg 和 .png)的像素信息
from PIL import Image

#for jpg
im = Image.open('file1.jpg')
pixel_jpg = list(im.getdata())
#for png
im1 = Image.open('file1.png')
pixel_png = list(im.getdata())

pixel_jpg 和 pixel_png 的结果类似于

pixel_jpg = [(27, 45, 19), (26, 44, 20), (26, 44, 20), (26, 44, 20),...]
pixel_png = [(138, 68, 5, 255), (155, 81, 5, 255), (178, 94, 6, 255),...]

PNG 图像中可用的额外像素信息是什么?为什么会这样?

png 的第四列称为 alpha,用于表示透明度。由于 jpg 没有 alpha 属性(因为它不支持透明度),因此 .getdata() 将不包含它们。

jpg 使用配色方案 RGB,png 称为 RGBA。这就是他们返回不同结果的原因。

作为旁注,最后一列 255 表示它是完全不透明的(0% 不可见)。因为和其他属性RGB一样,一共有255个。