image - 如何使用 ImageQt

标签 image python-imaging-library pyqt4 python-3.3

我想使用 ImageQT,这样我就可以使用 Python 图像库 (PIL) 进行图像处理,并使用 Qt4 渲染结果。我有一个简短的测试例程,它使用 PIL.Image.open 读取,使用 ImageQT 转换它并使用 QT 打开一个对话框。如果我只是使用 Qt 来读取图像,它就可以工作。我错过了什么?

#!/usr/bin/python3.3
import sys
from PIL import Image
from PIL.ImageQt import ImageQt
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import QImage

app = QtGui.QApplication(sys.argv)
# added initialization after first suggestion below
QtGui.QImageReader.supportedImageFormats()

im = Image.open('test.gif')
image = ImageQt(im)
pixmap = QtGui.QPixmap(image)
# pixmap = QtGui.QPixmap('test.gif')

widget = QtGui.QWidget()
hbox = QtGui.QHBoxLayout(widget)
lbl = QtGui.QLabel(widget)
lbl.setPixmap(pixmap)
hbox.addWidget(lbl)
widget.setLayout(hbox)
widget.show()        
sys.exit(app.exec_())

test.gif
(来源:sjs at www.sonic.net)

注意:在第一个建议之后添加了额外的 QtGui 初始化。结果还是一样。

最佳答案

该示例的问题在于它试图通过将 QImage 直接传递给 QPixmap 构造函数来将其转换为 QPixmap,这是不受支持的。

相反,您需要这样做:

im = Image.open('test.gif')
image = ImageQt(im)
pixmap = QtGui.QPixmap.fromImage(image)

关于image - 如何使用 ImageQt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18675592/

相关文章:

python - 使用 PyQT QDialogs (Python) 的视频播放器

wpf - 在 wpf 中将图像放入 ViewPort3D

javascript - 生成的 Julia 集和维基百科图像之间的差异

python - PIL中的图像转换,pgm文件错误

python - 使用 PIL 自动裁剪图像

python - Pillow 在安装时识别 JPEG 编码器,但不使用

python - 当 PyQt4 中的 QRunners 的 QThreadPool 执行完成时得到通知

python - PyQt4:在 trUtf8 字符串中检测到非 ASCII 字符

jquery - Bootstrap 3 鼠标悬停图像响应

c++ - OpenCV cvSaveImage Jpeg 压缩因子