假设我在QPixmap
中加载了QGraphicsView
,其缩放比例为2,因此图像现在全部被剪裁。我想拍摄剪辑的图像并将其保存为新的图像文件,以便它与QGraphicsView
中看到的相匹配。我知道QPixmap
有一个save()函数但没有重新应用视图转换,它与原始版本不同。
如何实现这一目标?谢谢。
答案 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_())