1

我的程序打开著名的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()

但是我在转换后得到了倾斜和倍增的图像莉娜

奇怪的是:程序可以在一些类似的(灰度,8BPP)图像上正常工作。有什么问题?

4

0 回答 0