Python Pillow 如何获取图像的所有像素?

如题,目前只能通过遍历循环得出图像的所有像素值:

image = Image.open('test.png')
width = image.width
height = image.height
image_list = []
for x in range(height):
    scanline_list = []
    for y in range(width):
        pixel = image.getpixel((y, x))
        scanline_list.append(pixel)
    image_list.append(scanline_list)
print(image_list)

是否有更简单的方法获取图像的所有像素?类似直接用 getpixels() 方法直接返回图像的所有像素的列表

阅读 13.8k
1 个回答

image 本身就代表了一个像素组成的二维数组, 不一定非得把二维数组保存成一维数组吧. 我觉得题主不妨讲讲看, 要获取一个图片像素的一维数组是做什么需求, 或许有更好的办法解决.
另外, pillow 里面有直接获取像素二维数组的方法:

from PIL import Image
im = Image.open('hopper.jpg')
px = im.load()
print (px[4,4])
px[4,4] = (0,0,0)
print (px[4,4])

上面代码输出类似下面的两个 tuple:

(23, 24, 68)
(0, 0, 0)

参考 pillow 文档.
希望对你有所帮助.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题