找到一种凑合能用的解决办法。
可以把这个大图分割成左右两个小图,两个小图分别绘制图形。
QImage img(47264 , 23624, QImage::Format_Grayscale8);
img.fill(0);
int bytePerLine = img.bytesPerLine();
uchar * pData = img.bits() + bytePerLine / 2;
QImage img1(img.bits(), 47264 / 2, 23624, bytePerLine, QImage::Format_Grayscale8); // 对应左边一半的图形
QImage img2(pData, 47264 / 2, 23624, bytePerLine, QImage::Format_Grayscale8); // 对应右边一半的图形
{
QPainter p1(&img1);
p1.setPen(Qt::white);
p1.setBrush(Qt::white);
for(int i = 0; i < 47264 / 2; i+= 15000)
{
p1.drawRect(QRect(i, 5000, 10000, 10000));
}
}
{
QPainter p2(&img2);
p2.setPen(Qt::white);
p2.setBrush(Qt::white);
for(int i = 15000; i < 47264; i+= 15000)
{
p2.drawRect(QRect(i - 47264 / 2, 5000, 10000, 10000));
}
}
img.save("e:/test03.png");
【 在 hengcuiyuan 的大作中提到: 】
: tiff格式和png格式都试过,只有一半的图形试对的,另外一半全部空白,有人遇到这种问题吗?
: 宽度和高度的像素点很多,47264 x 23624,200M的图形
--
修改:dormouseBHU FROM 123.113.230.*
FROM 123.113.230.*