当前位置:  开发笔记 > 编程语言 > 正文

PIL Image to QPixmap转换问题

如何解决《PILImagetoQPixmap转换问题》经验,为你挑选了1个好方法。

我一直在努力应对这一挑战,我已经设法利用以前的帖子和其他资源获得了一个好点.

我正在尝试将PIL.Image转换为QPixmap,以便我可以在PyQT GUI上使用QgraphicsScene进行显示.但是当显示图片时颜色已经改变了?有没有人遇到过这个问题?

我用于此的代码如下.

self.graphicsScene.clear()
im = Image.open('Penguins.jpg')
im = im.convert("RGBA")
data = im.tobytes("raw","RGBA")
qim = QtGui.QImage(data, im.size[0], im.size[1], QtGui.QImage.Format_ARGB32)
pix = QtGui.QPixmap.fromImage(qim)
self.graphicsScene.addPixmap(pix)
self.graphicsView.fitInView(QtCore.QRectF(0,0,im.size[0], im.size[1]), QtCore.Qt.KeepAspectRatio)
self.graphicsScene.update()

我在Windows 7 64bit上,使用python 3.4与PyQt4和枕头3.1.0.我得到的结果可以在下面看到.

原始图片

GUI中显示的图片

提前致谢 :).



1> titusjan..:

在你的PIL图像中,最后一个波段是alpha通道,而在Qt图像中,alpha通道是第一个(RGBA与ARGB).可能存在排列乐队的方法,但最简单的方法似乎是使用ImageQt类.

from PIL.ImageQt import ImageQt
qim = ImageQt(im)
pix = QtGui.QPixmap.fromImage(qim)

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有