我想将Pyglet.AbstractImage对象转换为PIL图像以进行进一步操作
这是我的密码

from pyglet import image
from PIL import Image
pic = image.load('pic.jpg')
data = pic.get_data('RGB', pic.pitch)
im = Image.fromstring('RGB', (pic.width, pic.height), data)
im.show()


但是显示的图像出了问题。
那么如何将图像从pyglet正确转换为PIL?

最佳答案

我想我找到了解决方案

Pyglet.AbstractImage实例中的音高与PIL不兼容
我在pyglet 1.1中发现有一个编解码器功能,可将Pyglet图像编码为PIL
这是来源的link

所以上面的代码应该修改为此

from pyglet import image
from PIL import Image
pic = image.load('pic.jpg')
pitch = -(pic.width * len('RGB'))
data = pic.get_data('RGB', pitch) # using the new pitch
im = Image.fromstring('RGB', (pic.width, pic.height), data)
im.show()


在这种情况下,我使用的是461x288的图片,发现pic.pitch为-1384

但新的音高是-1383

关于python - 如何将Pyglet图像转换为PIL图像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/896548/

10-15 02:07