سؤال

أريد تحويل كائن 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 هنا حلقة الوصل إلى المصدر

لذلك يجب تعديل الكود أعلاه لهذا

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

نصائح أخرى

هذا مفتوح قائمة الرغبات غرض:

مجردة إلى / من صورة PIS.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top