0
numpyの配列から作られた透明な画像を保存する必要があります。私は、画像を保存することができます:PIL.Image.frombuffer()でRGBA画像を保存する
img = Image.fromarray(data, 'RGB')
しかし、私はそう私がそれを保存しようとした、それは透明である必要は:
img = Image.fromarray(data, 'RGBA')
その後、私はこのエラーを取得する:
File "/home/pi/Documents/Projet/GetPos.py", line 51, in click
img = Image.fromarray(data, 'RGBA')
File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 2217, in
fromarray
return frombuffer(mode, size, obj, "raw", rawmode, 0, 1)
File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 2162, in
frombuffer
core.map_buffer(data, size, decoder_name, None, 0, args)
ValueError: buffer is not large enough
私はいくつかの研究を行いましたが、私は何をしようとしているのか非常に複雑に見えます... 誰もがこの1つ私を助けることができますか?ここで
は私の完全なコード(私は:)のpythonにはかなり新しいです)です:
mouse = pymouse.PyMouse()
posX, posY = mouse.position()
print(mouse.position())
w, h = 1920, 1080
data = np.zeros((h, w, 3), dtype=np.uint8)
for x in range(posX-20, posX+20):
if x > 1679:
data[posY, w-1] = [255, 0, 0]
else:
data[posY, x] = [255, 0, 0]
for y in range(posY-20, posY+20):
if y > 1049:
data[h-1, posX] = [255, 0, 0]
else:
data[y, posX] = [255, 0, 0]
img = Image.fromarray(data, 'RGBA')
##img = Image.frombuffer('RGBA', [1080, 1920], data, "raw", 'RGBA', 0, 1)
img.save('my.png')