2012-07-24 4 views
0

다음 테스트 응용 프로그램을 사용하여 PGM 파일을 표시하려고합니다. 코드는 PNG 파일과 함께 작동하지만, PGM은하지 :QGraphicsView 내에 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 파일을 표시 할 수 있습니까?

답변

0

QImage는 PGM 파일 읽기를 지원합니다. img가 올바르게로드되었는지 확인 했습니까?

은 아마 당신은 파일 또는 이름에 오타 나 잘못된 권한

당신이 이미지를 열고 QImage로 변환 한 다음 QPixmap에 그 변환 PIL을 사용하고있는 것 같습니다
+0

예 img가 올바르게로드되었는지 확인했습니다. PGM 파일로 OP 코드가 작동합니까? – itISiBOWMAN

0

을 아 바드있다.

PGM을 QPixmap에 직접로드하고 PIL을 피할 수없는 이유가 있습니까?

당신을 위해 일한다

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

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

교체.

+0

완전히 작동합니다. 사실 내가 찾은 해결 방법은 QIMage를 사용하여 파일을로드하는 것입니다. 'qimg = QImage ("test.pgm") pixmap = QPixmap.fromImage (qimg) self.scene.addPixmap (pixmap)'. 하지만 방법이 더 간단합니다. 고맙습니다. – itISiBOWMAN