Python 已保存图片的红色像素值不正确
我在图片中有一个红色像素的多维数组。我正在调整它,用我改变的新的红色像素制作一张新的图片。我仍然保留蓝色和绿色,我不会改变它们。在保存新图片之前,当我打印红色像素以查看它们是否正确时,一切都正常 直到我通过打开并显示红色值来检查新图片,此时值是错误的。 代码如下:Python 已保存图片的红色像素值不正确,python,python-imaging-library,Python,Python Imaging Library,我在图片中有一个红色像素的多维数组。我正在调整它,用我改变的新的红色像素制作一张新的图片。我仍然保留蓝色和绿色,我不会改变它们。在保存新图片之前,当我打印红色像素以查看它们是否正确时,一切都正常 直到我通过打开并显示红色值来检查新图片,此时值是错误的。 代码如下: from PIL import Image import numpy as np picture = Image.open('flower.jpg') red, green, blue = np.array(picture).T
from PIL import Image
import numpy as np
picture = Image.open('flower.jpg')
red, green, blue = np.array(picture).T
print red
picture.save('output.jpg')
第一个打印语句的输出为图片的红色像素:
[[112 114 111 ..., 12 13 7]
[111 112 112 ..., 13 15 11]
[111 110 110 ..., 12 17 17]
...,
[181 180 180 ..., 25 17 11]
[180 181 182 ..., 18 14 9]
[179 179 179 ..., 13 14 15]]
由PIL保存的JPEG总是有损的。我不确定,但问题可能与转置有关(转置次数太多或在错误的地方进行)。哇,这真的有效。我不敢相信这么简单,我的天啊,非常感谢上帝保佑你所做的一切+1。JPEG的全部意义在于,它可以以一种人眼不会注意到差异的方式丢弃数据(但很明显,计算机查看精确的像素值时会注意到)。