将QGraphicView变换应用于保存的图像

时间:2018-03-29 22:27:00

标签: python pyqt pyqt4 qgraphicsview qpixmap

假设我在QPixmap中加载了QGraphicsView,其缩放比例为2,因此图像现在全部被剪裁。我想拍摄剪辑的图像并将其保存为新的图像文件,以便它与QGraphicsView中看到的相匹配。我知道QPixmap有一个save()函数但没有重新应用视图转换,它与原始版本不同。

如何实现这一目标?谢谢。

1 个答案:

答案 0 :(得分:1)

viewport()是在QGraphicsView中以可视方式显示的小部件,因此您必须使用render()保存该小部件的图像。

import sys

from PyQt4 import QtCore, QtGui

app = QtGui.QApplication(sys.argv)
view = QtGui.QGraphicsView()
scene = QtGui.QGraphicsScene()
view.setScene(scene)
scene.addPixmap(QtGui.QPixmap("/path/of/image"))
view.scale(4, 4)
view.show()

pixmap = QtGui.QPixmap(view.viewport().size())
view.viewport().render(pixmap)
pixmap.save("test.png")

sys.exit(app.exec_())