2014-01-14 140 views
2

我想在PyQt5中的QLabel中呈現WSQ圖像。 WSQ圖像位於一個zip文件中的xml文件中。這裏是我的方法:什麼是在QLabel中呈現WSQ圖像的最佳方式

import zipfile 
import xml.etree.cElementTree as ET 
import base64.b64decode as b64decode 
from PyQt5 import QtGui, QtWidgets 
... 
try: 
    with zipfile.ZipFile(zfilename) as src_zip: 
     root = ET.fromstring(src_zip.open(xmlfilename).read()) 
except zipfile.BadZipFile as e: 
    root = None 
finger_prints = [] 
if root: 
    for data in root.findall('.//Demographics/FingerData'): 
     finger_prints.append(b64decode(data.find('FingerprintImage').text)) 
... 
finger_data = finger_prints.pop() 
pixmap = QtGui.QPixmap() 
pixmap.loadFromData(finger_data, 'WSQ') # freezes 
QtWidgets.QLabel().setPixmap(pixmap) 

第二,但最後一行導致程序凍結/掛機,但如果我這樣做:

with file('/tmp/finger_print.wsq', 'wb') as f: 
    f.write(finger_data) 

我能夠在WSQ查看器來查看圖像。我知道Qt有不同圖像格式的插件,是否有我缺少的圖像插件?

在此先感謝您的幫助。

-Abraham。

+0

嗨@安德魯 - 巴伯,我已經重新構思了我的問題,甚至改變了標題,如果你再看一下,我會很感激。如果它仍然是題外話,我會誠心誠意地採取。 –

回答

1

image formats Qt支持默認是:

Format Description       Qt's support 
BMP  Windows Bitmap       Read/write 
GIF  Graphic Interchange Format (optional) Read 
JPG  Joint Photographic Experts Group  Read/write 
JPEG Joint Photographic Experts Group  Read/write 
PNG  Portable Network Graphics    Read/write 
PBM  Portable Bitmap      Read 
PGM  Portable Graymap      Read 
PPM  Portable Pixmap      Read/write 
XBM  X11 Bitmap        Read/write 
XPM  X11 Pixmap        Read/write 

所以你要麼必須寫一個custom Qt image plugin,或以某種方式將圖像數據轉換成的格式Qt的理解之一。

相關問題