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的全部意义在于,它可以以一种人眼不会注意到差异的方式丢弃数据(但很明显,计算机查看精确的像素值时会注意到)。