【问题标题】:Applying QGraphicView transform to saved image将 QGraphicView 变换应用于保存的图像
【发布时间】:2018-09-08 23:50:41
【问题描述】:
假设我在 QGraphicsView 中加载了一个 QPixmap,该 QGraphicsView 已缩放 2 倍,因此图像现在四面都被剪裁了。我想截取剪切的图像并将其另存为新的图像文件,以便它与QGraphicsView 中看到的内容相匹配。我知道QPixmap 有一个 save() 函数,但如果不重新应用视图变换,它不会与原来的不同。
如何做到这一点?谢谢。
【问题讨论】:
标签:
python
pyqt
pyqt4
qgraphicsview
qpixmap
【解决方案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_())