Как отобразить многостраничный TIFF с PyQt
Мне нужно отобразить многостраничный TIFF файл с PyQt
из поиска в интернете говорят, что Qt не поддерживает
многостраничный TIFF.
Мой код показывает только первую страницу:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys
from PyQt4.QtGui import *
class Dialog(QDialog):
def __init__(self, parent = None):
super(Dialog, self).__init__(parent)
self.resize(1280, 1024)
masterLayout = QHBoxLayout(self)
mainLayout = QVBoxLayout()
self.pictureLabel = QLabel()
mainLayout.addWidget(self.pictureLabel)
self.status_Label = QLabel('100')
masterLayout.addLayout(mainLayout)
self.img_refresh()
def img_refresh(self):
imagem = QPixmap('image.tif')
myScaledPixmap = imagem.scaled(1280,1024)
self.pictureLabel.setPixmap(myScaledPixmap)
self.setWindowTitle('test')
def main():
app = QApplication(sys.argv)
form = Dialog()
form.show()
app.exec_()
if __name__ == '__main__':
main()
2 ответа
Вы можете использовать MultiPageTIFFViewerPyQt https://github.com/marcel-goldschen-ohm/MultiPageTIFFViewerPyQt/tree/master который довольно хорошо написан.
Вы можете использовать пакет tifffile, который также поддерживает многостраничные tiff. Они могут быть преобразованы в массивы numpy, которые могут быть преобразованы в QImages с помощью qimage2ndarray, и они могут быть преобразованы в QPixmaps.
Информация о пакете tifffile: https://pypi.python.org/pypi/tifffile
Документация к пакету qimage2ndarray: http://hmeine.github.io/qimage2ndarray/