Как отобразить многостраничный 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/

Другие вопросы по тегам