如何将Pyglet图像转换为PIL图像?

时间:2009-05-22 06:07:26

标签: python image python-imaging-library pyglet

我想将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?

2 个答案:

答案 0 :(得分:2)

我想我找到了解决方案

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

答案 1 :(得分:0)

这是一个开放的wishlist项目:

  

来自PIL图像的AbstractImage。