Что может быть не так при преобразовании изображения в градациях серого из PIL в QPixmap?

Моя программа открывает известные Lena, затем преобразует его в изображение PIL, а затем преобразует в QPixmap.

import sys
import cStringIO

from PyQt4 import QtGui, QtCore
from PIL import Image

class ImageLabel(QtGui.QLabel):
    def __init__(self, parent=None):
        QtGui.QLabel.__init__(self, parent)

        self.setGeometry(300, 300, 300, 350)
        self.setWindowTitle('Window')
        im = Image.open('Test_Images/Lena.bmp')

        self.bufor=QtCore.QBuffer()
        self.bufor.open(QtCore.QIODevice.ReadWrite)
        im.save(self.bufor, "PNG")

        strio = cStringIO.StringIO()
        strio.write(self.bufor.data())
        self.bufor.close()
        strio.seek(0)
        self.pil_image = Image.open(strio)
        self.pil_image.save('pil_image.png', 'PNG')
        data = self.pil_image.tostring()

        image = QtGui.QImage(data, self.pil_image.size[0], self.pil_image.size[1], QtGui.QImage.Format_Indexed8)
        pix = QtGui.QPixmap.fromImage(image)
        self.setPixmap(pix)

app = QtGui.QApplication(sys.argv)
imageLabel = ImageLabel()
imageLabel.show()

Но у меня получается наклон и размножение image Лена после трансформации

Что странно: программы корректно работают с некоторыми похожими (оттенки серого, 8BPP) изображениями. Что может быть не так?


person Artur    schedule 06.03.2013    source источник
comment
Как мой вопрос может быть дубликатом, поскольку он был задан за 3 года до второго вопроса?   -  person Artur    schedule 16.07.2018