我有一个QGraphicScene
对象,只要我没有对项目进行滚动或缩放等任何修改,我就可以保存到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);
}