QPainter to QImage



我正在尝试使用Qt5使用以下代码渲染QGraphicsScene到图像:

QImage image(outputWidth, outputHeight, QImage::Format_ARGB32_Premultiplied);
QPainter painter(&image);
scene->render(&painter);
painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
image.mirrored().save("output.png");

问题是太靠近图像边界的点不会被渲染。有没有一种方法来强制填充/边距?

您可以通过渲染较大的图像然后剪切到较小的图像来实现pad。

int pad_width = 4;
QImage image;
QImage padded_image(outputWidth + 2 * pad_width, outputHeight + 2 * pad_width, QImage::Format_ARGB32_Premultiplied);
QPainter painter(&padded_image);
scene->render(&painter);
painter.setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform);
image = padded_image.copy(pad_width, pad_width, outputWidth, outputHeight);
image.mirrored().save("output.png");

相关内容

  • 没有找到相关文章

最新更新