2

我正在尝试使用 smc.FreeImage 加载 .NEF 文件(Nikon Camera RAW)并使用 PySide 显示。

我发现这个示例可以很好地加载和显示注释的 .JPG 文件,但是当我用 FI.Image NEF 替换像素图时它会崩溃。

我添加了打印 pixmap.getInfoHeader 以确保 .NEF 实际加载它所做的,我在输出窗口中看到正确的标题信息。

如何翻译读取的 pixmap = FI.Image 以便 PySide 理解它?我见过有人使用 numpy 和 PIL tostring,但这些例子似乎都没有涵盖这种情况。

import sys
from PySide import QtGui, QtCore
from smc import freeimage as FI

class Example(QtGui.QWidget):

    def __init__(self):
        super(Example, self).__init__()

        self.initUI()

    def initUI(self):

        hbox = QtGui.QHBoxLayout(self)

        #pixmap = QtGui.QPixmap("Somefile.jpg")
        pixmap = FI.Image("Anotherfile.NEF")
        print( pixmap.getInfoHeader() )

        lbl = QtGui.QLabel(self)
        lbl.setPixmap(pixmap)

        hbox.addWidget(lbl)
        self.setLayout(hbox)

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Da window Title')
        self.show()

def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
4

1 回答 1

0

我已经测试了您的最小示例。您可以简单地创建一个新的 QPixmap 对象并将 *.nef 文件的路径作为构造函数参数,而不是使用 smc 模块。

pixmap = QtGui.QPixmap("Path_To_File.NEF")
lbl = QtGui.QLabel(self)
lbl.setPixmap(pixmap)

我已经测试了你的例子,它没有任何问题。

于 2014-11-17T14:19:02.560 回答