我想创建一个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)
那么为什么保存的图像到处都不是红色的?