【问题标题】: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_())
    

    【讨论】:

    • 啊啊啊!好的!我从来没有想过,非常非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 2020-01-12
    • 1970-01-01
    • 2017-05-19
    相关资源
    最近更新 更多