Qt 将QGraphicscene保存到PNG文件时出现问题
我有一个Qt 将QGraphicscene保存到PNG文件时出现问题,qt,qgraphicsview,qgraphicsscene,qpainter,qimage,Qt,Qgraphicsview,Qgraphicsscene,Qpainter,Qimage,我有一个qgraphicsecene对象,只要我没有对该项目进行任何修改(如滚动或缩放),就可以保存到PNG文件中。执行滚动或缩放后,保存的图像变小,许多透明像素填充到所需的尺寸。我认为这与需要将QGraphicsView的可见区域渲染到保存的QImage有关,但我很难弄清楚这一点 下面是我的一些代码: void myClass::saveSceneAsPNGImage(QString path, int width) { Scene->clearSelection();
qgraphicsecene
对象,只要我没有对该项目进行任何修改(如滚动或缩放),就可以保存到PNG文件中。执行滚动或缩放后,保存的图像变小,许多透明像素填充到所需的尺寸。我认为这与需要将QGraphicsView
的可见区域渲染到保存的QImage
有关,但我很难弄清楚这一点
下面是我的一些代码:
void myClass::saveSceneAsPNGImage(QString path, int width)
{
Scene->clearSelection();
double scaleFactor = (width / Scene->sceneRect().size().width());
QImage image(Scene->sceneRect().size().width() * scaleFactor,
Scene->sceneRect().size().height() * scaleFactor,
QImage::Format_ARGB32);
QPainter painter(&image);
painter.setRenderHint(QPainter::Antialiasing);
Scene->render(&painter);
image.save(path);
}
你能解释一下你想在最后得到什么结果吗?我想把我在GUI中看到的场景(滚动和缩放的方式)保存到一个PNG文件中,其尺寸可能与场景的原始大小不同。也许你可以上传这两张图片,有无缩放。