Pergunta

Eu quero converter um objeto Pyglet.AbstractImage a uma imagem PIL para posterior manipulação aqui estão meus códigos

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()

mas a imagem mostrada deu errado. assim como converter uma imagem de pyglet a PIL corretamente?

Foi útil?

Solução

Eu acho que eu encontrar a solução

o gramado em instância Pyglet.AbstractImage não é compatível com PIL I encontrada em pyglet 1.1 existe uma função codec para codificar a imagem Pyglet para PIL aqui é o ligação à fonte

para que o código acima deve ser modificada para este

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()

Eu estou usando uma imagem de 461x288 neste caso e descobrir que pic.pitch é -1.384

mas o novo campo é -1.383

Outras dicas

Este é um lista item de aberta:

AbstractImage para / imagem PIL partir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top