python - 在 PIL python 中查询 im.save

标签 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]

打印输出 -

保存前:保存后

$ 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 是一种有损图像格式,保存会导致重新编码,从而改变像素数据。

关于python - 在 PIL python 中查询 im.save,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4914764/

相关文章:

python - 为什么在 __new__ SOMETIMES 之后不调用 __init__

java - Python 和 Java 中相同正则表达式的不同行为

html - 网站上的图片未在iOS设备上显示

PHP水印图片

matlab - 使用 matlab 计算图像中的圆形对象

image - 计算旋转2D图像的平移值和旋转角度

python - Mypy:与函数字典不兼容的类型(对象)

python - 使用 .readlines() 时摆脱\n

image - Flutter/Dart 有没有办法显示图像的一部分

android - 故意使用 setType() 只允许 jpeg 和 png 图像;不是 gif 图片