皮尔图像.保存导致像素映射不正确

2024-09-27 23:20:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用pillow从JPEG中读取数据,然后将其保存到新的图像中,但是,当我从新保存的图像中读取数据时,它与原始图像中的数据不一致!在

脚本如下:

from PIL import Image

im1 = Image.open("original.jpg")
data1 = list(im1.getdata())

newim = Image.new("RGB", im1.size)
newim.putdata(data1)
newim.save("new.jpg")

im2 = Image.open("new.jpg")
data2 = list(im2.getdata())

for i in range(10):
    print data1[i], data2[i]

运行后,输出为:

^{pr2}$

这些值不应该相同吗?在

我使用的是Python2.7.9和Pillow2.7.0。在

提前谢谢。在


Tags: 图像imagenewopen读取数据listjpggetdata
1条回答
网友
1楼 · 发布于 2024-09-27 23:20:39

“这些值不应该相同吗?” 不,JPEG是lossy格式-这意味着在节省时间时,JPEG编码库可以改变像素中的实际值-这可能会由于许多因素而变化-所需的JPEG质量就是其中之一。在

但是,如果将新图像保存为“.png”文件,并在以后将其与从原始jpeg图像中读取的图像进行比较,则值应该相同: 使用相同的库读取jpeg应该是确定性的(png图像也是如此)

相关问题 更多 >

    热门问题