【问题标题】:How to build an image with every pixel's RGB value如何使用每个像素的 RGB 值构建图像
【发布时间】:2012-06-05 05:48:14
【问题描述】:

我正在使用 Python 和 PIL 库,并且我拥有图像每个像素的 RGB 信息及其位置。有什么方法可以根据这些信息构建图像?

【问题讨论】:

  • 目前信息是如何呈现的?

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


【解决方案1】:

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

由于您没有提供代码,甚至没有提供数据样本,因此很难进一步建议您。

【讨论】:

  • 文档链接已损坏 :(
【解决方案2】:

当然。如果您的源数据是稀疏的(即您没有每个像素位置的值),您可能需要执行以下操作:

  • 创建所需尺寸的空图像
  • 确保您的颜色数据以光栅顺序存储(即先按 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2014-03-14
    相关资源
    最近更新 更多