将图像数据从opengl编码为PIL图像

de90aj5v  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(130)

我有一个字符串列表,是我在openGL中调用glreadPixels得到的。我想把这个字符串列表转换成一个图像,并在python中显示出来。这是我所尝试的:

st = ''.join((e)for e in get_frame_binary_data())
d = np.frombuffer(st.encode(),dtype=np.uint8,count=480*640*3).reshape([480,640,-1])   
plt.imshow(d)
plt.show()

我得到的结果是完全错误的,但是如果我把同样的数据写入一个文本文件(在opengl c++中),然后从python中读取它,它就可以工作了:

with open('frame_binary_data', mode='rb') as f:
     d = np.frombuffer(f.read(),dtype=np.uint8,count=480*640*3).reshape([480,640,-1]) 
     plt.imshow(d)
     plt.show()

我想这和编码有关。有人能帮我吗

cidc1ykv

cidc1ykv1#

使用glreadpixels,你需要将数据保存为unsigned char,然后在python代码中,我使用bytes(my_frame_data)将列表转换为字节。

d = np.frombuffer(bytes(get_frame_binary_data()),dtype=np.uint8,count=480*640*3).reshape([480,640,-1])

问题是我的数据需要保存为unsigned char。

相关问题