如何使用每个像素的RGB值构建图像

时间:2012-05-30 23:27:00

标签: python image image-processing python-imaging-library rgb

我使用的是Python和PIL库,我为图像的每个像素及其位置提供了RGB信息。有什么方法可以根据这些信息建立图像吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

是。这就是Image.putpixel()(可能putdata()取决于您拥有数据的方式)。查找这些方法的文档here

很难为您提供进一步的建议,因为您没有提供任何代码甚至是数据样本。