在PIL python中查询im.save

sri*_*ril 1 python image image-processing python-imaging-library

im.load()用来获取ORIGINAL_IMAGE的像素.随后,我保存了它

我看到保存的东西与我想要保存的不同 -

这是一个代码片段和输出,将突出我的问题 -

片段:

im = Image.open(ORIGINAL_IMAGE)
dup_im = im.copy()
pix = dup_im.load() 
dup_im.save(DUP_IMAGE)
saved_im = Image.open(DUP_IMAGE)
saved_pix = saved_im.load()

for i in range(10):
        print  pix[0, i], " : ", saved_pix[0, i]
Run Code Online (Sandbox Code Playgroud)

印刷品的输出 -

在节约之前:节约之后

$ python test.py 
162  :  162
162  :  162
162  :  163
162  :  163
162  :  163
164  :  162
160  :  161
159  :  160
155  :  153
155  :  155
$ 
Run Code Online (Sandbox Code Playgroud)

我的Python版本的详细信息 -

$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Run Code Online (Sandbox Code Playgroud)

知道两个字段(保存前后的像素)不一样的原因吗?

Rei*_*cke 6

我可以在加载JPG并将其再次保存为JPG时重新创建.将像保存为位图时,像素数据相等.由于JPG是有损图像格式,因此保存会导致重新编码,从而改变像素数据.