从Python中存储在数组中的像素创建图像

时间:2016-03-30 04:42:56

标签: python image

import os, sys
from PIL import Image


im = Image.open("result_bw.png")
l = []
print im.size
pix = im.load()
for x in range(im.size[0]):
    for y in range(im.size[1]):
        l.append(pix[x,y])

img = Image.new('L', (im.size[1],im.size[0] ))
img.putdata(l)
img.save('image.png')

以上代码读取黑白图像并将像素值存储在列表中。

当我从列表中存储的像素创建新图像时,我得到逆时针旋转的原始图像。

为什么我会获得旋转图像?

我该如何纠正?

2 个答案:

答案 0 :(得分:1)

翻转您阅读的x和y值。计算机在屏幕的左上角写入一个原点,y轴指向下方,x正轴指向右方。您的实现假定左下角有一个原点。

答案 1 :(得分:0)

如果有putdata,则可能还有getdata。实际上,你可以使用

l = list(im.getdata())

代替您的for循环。这也可以解决旋转问题。