保存PIL图像会显示不同的像素值

时间:2017-02-07 18:20:06

标签: python numpy python-imaging-library

我想创建一个2 x 2图像,所有像素都是红色,我想通过将NumPy数组转换为PIL图像来实现这一目标。

这是我的尝试:

pixels = np.array([[[255, 0, 0], [255, 0, 0]], [[255, 0, 0], [255, 0, 0]]])
image = Image.fromarray(pixels.astype('uint8'), 'RGB')
image.save('image.png')

但是,当我查看此保存的图像时,只有图像中的左上角像素为红色,而所有其他像素均为黑色。事实上,无论pixels数组的内容是什么,图像在左上角始终为红色,在其他任何地方都是黑色。

但是我打印出像素数据:

print image.getpixel((0, 0))
print image.getpixel((0, 1))
print image.getpixel((1, 0))
print image.getpixel((1, 1))

我明白了:

(255, 0, 0)
(255, 0, 0)
(255, 0, 0)
(255, 0, 0)

那么为什么保存的图像到处都不是红色的?

0 个答案:

没有答案