我正在使用 Python 和 PIL 库,并且我拥有图像的每个像素及其位置的 RGB 信息。有什么方法可以从这些信息中构建图像?
问问题
3392 次
2 回答
1
当然。如果您的源数据是稀疏的(即您没有每个像素位置的值),您可能需要执行以下操作:
- 创建所需尺寸的空图像
- 确保您的颜色数据以光栅顺序存储(即按 y 排序,然后按 x 排序)
- 遍历数据并将像素值存储在每个位置
因此,假设您有一个元组数组,例如(x, y, (r,g,b))
,您可以执行以下操作:
from pil import Image
WIDTH=640
HEIGHT=480
img = Image.new(WIDTH, HEIGHT, 'RGB')
# Define this based on your data
my_raster_sort(my_image_data)
img_data = img.load()
for x, y, color in my_image_data:
img_data[x,y] = color
如果您的源图像数据是完整的(即每个位置都有一个颜色值),那么将数据转换为使用所需内存布局格式化的缓冲区可能会更快,然后使用Image.frombuffer
.
于 2012-05-31T00:58:34.447 回答
0
是的。这就是Image.putpixel()
(并且可能putdata()
取决于您拥有数据的方式)的用途。在此处查找这些方法的文档。
由于您没有提供代码,甚至没有提供数据样本,因此很难进一步建议您。
于 2012-05-30T23:33:13.407 回答