【问题标题】:How to display multi page TIFF with PyQt如何使用 PyQt 显示多页 TIFF
【发布时间】:2015-12-11 06:48:50
【问题描述】:

我需要用 PyQt 显示一个多页的 tiff 文件
从互联网上搜索他们说 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()

【问题讨论】:

  • 使用pillow 也是一种选择。

标签: python pyqt tiff


【解决方案1】:

您可以使用也支持多页 tiff 的 tifffile 包。它们可以转换为 numpy 数组,可以使用 qimage2ndarray 转换为 QImages,这些可以转换为 QPixmaps。

关于 tifffile 包的信息: https://pypi.python.org/pypi/tifffile

qimage2ndarray 包的文档: http://hmeine.github.io/qimage2ndarray/

【讨论】:

    【解决方案2】:

    你可以使用 MultiPageTIFFViewerPyQt https://github.com/marcel-goldschen-ohm/MultiPageTIFFViewerPyQt/tree/master 写得很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多