我试图用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。在
提前谢谢。在
“这些值不应该相同吗?” 不,JPEG是lossy格式-这意味着在节省时间时,JPEG编码库可以改变像素中的实际值-这可能会由于许多因素而变化-所需的JPEG质量就是其中之一。在
但是,如果将新图像保存为“.png”文件,并在以后将其与从原始jpeg图像中读取的图像进行比较,则值应该相同: 使用相同的库读取jpeg应该是确定性的(png图像也是如此)
相关问题 更多 >
编程相关推荐