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

时间:2017-04-30 11:26:07

标签: python image python-3.x python-imaging-library pixels

我正在尝试使用

获取两个不同图像文件(.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图像中可用的额外像素信息是什么?为什么会这样?

1 个答案:

答案 0 :(得分:2)

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

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

作为旁注,最后一栏255表示它完全不透明(0%不可见)。由于像RGB的其他属性一样,它总共有255个。