Skip to main content
 首页 » 编程设计

python之在 PIL python 中查询 im.save

2025年05月04日1998°冷暖

我正在使用 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] 

打印输出 -

保存前:保存后

$ python test.py  
162  :  162 
162  :  162 
162  :  163 
162  :  163 
162  :  163 
164  :  162 
160  :  161 
159  :  160 
155  :  153 
155  :  155 
$  

有关我的 Python 版本的详细信息 -

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

知道为什么这两个字段(保存前后的像素)不一样吗?

请您参考如下方法:

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