如何在QGraphicsView中显示PGM文件?

时间:2012-07-24 15:35:27

标签: qt pyqt qgraphicsview qgraphicsscene pgm

我正在尝试使用以下测试应用程序显示PGM文件。该代码适用于PNG文件,但不适用于PGM:

import sys
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import Image
import ImageQt

class MyView(QGraphicsView):
    def __init__(self):
        QGraphicsView.__init__(self)

        self.scene = QGraphicsScene(self)
        self.setScene(self.scene)

        img = Image.open('test.pgm') # works with 'test.png' 
        self.imgQ = ImageQt.ImageQt(img)
        pixmap = QPixmap.fromImage(self.imgQ)
        self.scene.addPixmap(pixmap)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    view = MyView()
    view.show()
    sys.exit(app.exec_())

如何在QGraphicsView中显示PGM文件?

2 个答案:

答案 0 :(得分:0)

QImage支持读取PGM文件。你检查过img是否正确加载了吗?

也许您有文件,或名称中的拼写错误或错误的权限

答案 1 :(得分:0)

看起来你正在使用PIL打开图像,转换为QImage然后将其转换为QPixmap。

有什么理由不能直接将PGM加载到QPixmap中并避免使用PIL?

更换

img = Image.open('test.pgm') # works with 'test.png' 
self.imgQ = ImageQt.ImageQt(img)
pixmap = QPixmap.fromImage(self.imgQ)
self.scene.addPixmap(pixmap)

pixmap = QPixmap('test.pgm')
self.scene.addPixmap(pixmap)

应该适合你。