在 Python 中将 PNG 文件转换为位图数组

Converting PNG file to bitmap array in Python

我想将 PNG 图像转换为二维数组,其中每个数组都包含该特定像素的 RGB 值列表。如何创建一个程序来读入 *.png 文件并转换为这种类型的数据结构?

您可以使用现有的 pygame 模块。使用 pygame.image.load 将文件导入 Surface。然后,您可以使用 pygame.surfarray.array2d 从这里访问位数组。请参阅 Pygame 文档了解更多信息。

如果您安装了 PIL,那么您可以使用 Image.open 创建图像并获得如下颜色:

data = [image.getpixel((x, y)) for x in range(image.width) for y in range(image.height)]

您可以使用 wand 完成此类基本任务。与其他 ImageMagik 库不同,语法非常易于阅读。基本上你会做这样的事情:

from wand.image import Image
from wand.display import display

array = []
with Image(filename='yourfile.png') as img:
    array.append(img.channel_images)        # this is most likely wrong, but it should be something similar

它将沿着这些方向发展。离开办公室后,我会试试这个。