创建灰度图像

2024-03-29 00:59:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从一个文件中读取二进制数据,该文件指定x和y坐标上的强度值(不是开源图像格式),并希望将其转换为PNG图像(或其他广泛支持的格式)。我将数据加载到一个数组中(使用array模块),其中每个元素都是0到255之间的整数。要将其保存为PNG,我可以为每个元素(x)创建一个3项元组,如下所示:

t = (x, x, x)

使用map()在数组中添加apply,然后使用putdata()保存图像。但是,转换为元组数组需要很长时间(几分钟)。有没有办法只用一个整数(不是元组)来指定rgb值。我猜另一个选择是使用NumPy,但我不知道从哪里开始,所以在这方面的任何帮助也将不胜感激。

提前谢谢你的帮助。


Tags: 模块文件数据图像元素png格式图像格式
3条回答

创建新图像时,将其设置为模式L:

im = Image.new('L', size)
im.putdata([x1, x2, x3, ...])

其中数据是值的列表,而不是元组。

你要找的是im.putpixel(xy,colour)吗?

有几种方法可以做到这一点,但是如果您已经在内存中有了数据,请使用Image.frombufferImage.fromstring模式(对于8位灰度数据)进行查找。

相关问题 更多 >