所以,我要做的是让PIL创建一个基于二进制字符串的图像。 一些背景:
from PIL import Image
value = "0110100001100101011011000110110001101111"
vdiv = [value[i:i+8] for i in range(0, len(value), 8)]
^这将从二进制字符串创建字节列表。['01101000', '01100101',.....]
def diff(inp):
if inp == '1':
return (0,0,0)
if inp == '0':
return (255,255,255)
else:
pass
^这将为每个对应的位返回一个颜色元组,如果我调用:
for i in vdiv:
for i2 in i:
print diff(i2)
它将为列出的字节中的每个位打印每个颜色元组。(0,0,0) (0,0,0) (255,255,255)...
我想知道的是,如何让PIL创建像素与二进制字符串匹配的图像?
它应该是这样的。:
到目前为止我对皮尔的看法是:
img = Image.new( 'RGB', (8,len(vdiv)), "white")
pixels = img.load()
##
for x in range(img.size[0]):
for y in range(img.size[1]):
for i in vdiv:
for i2 in i:
pixels[x,y] = diff(i2) #Creates a black image. What do?
##
img.show()
是for x in range
位让我抓狂。我迷路了。
您可以使用
img.putdata
:如果您有NumPy,可以使用
Image.fromarray
:但这次测试表明,使用
putdata
更快:相关问题 更多 >
编程相关推荐