最近,我的应用程序遇到了一个问题(所以我提供了一个问题的迷你示例),这是我在创建大型图像时遇到的问题,当我查看输出图像时,它没有完全绘制!我不知道为什么,所以我创建了一个迷你示例。
#include <QGuiApplication>
#include <QPainter>
#include <QPixmap>
static QPixmap imageTest(int width, int height, QColor const &color) {
static constexpr auto VERTICAL_PADDING = 2;
QPixmap pixmap(width, height);
pixmap.fill(Qt::transparent);
QPainter painter(&pixmap);
painter.setRenderHint(QPainter::Antialiasing);
QPen pen(color);
double const widthF = 1.0;
pen.setWidthF(widthF);
painter.setPen(pen);
for (int i = 0; i < width; ++i) {
QPointF p1(i, 94.9445); // mini example assume fixed height
QPointF p2(i, 167.055); // mini example consider fixed height
painter.drawLine(p1, p2);
}
painter.end();
return pixmap;
}
int main(int argc, char *argv[]) {
QGuiApplication app(argc, argv);
auto image = imageTest(211'459, 262, Qt::GlobalColor::green);
image.save("testFile.png", "PNG");
app.quit();
return 0;
}
图像的结果,是这样的:
我还使用其他方法进行了测试,例如绘制线和填充矩形,但这对我没有帮助。有什么问题吗?
您可以使用的唯一方法: 将图像分成更小的部分并制作多个图像...... 我刚刚发现它很有用并使用它。 感谢您的评论。