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个。
我正在尝试使用
获取两个不同图像文件(.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个。