- 主题:QImage保存超大图,会失真
tiff格式和png格式都试过,只有一半的图形试对的,另外一半全部空白,有人遇到这种问题吗?
宽度和高度的像素点很多,47264 x 23624,200M的图形
--
修改:hengcuiyuan FROM 49.84.152.*
FROM 49.84.152.*
具体什么格式?灰度还是RGB?
【 在 hengcuiyuan 的大作中提到: 】
: tiff格式和png格式都试过,只有一半的图形试对的,另外一半全部空白,有人遇到这种问题吗?
: 宽度和高度的像素点很多,47264 x 23624,200M的图形
--
FROM 117.136.80.*
单色图
【 在 dormouseBHU 的大作中提到: 】
: 具体什么格式?灰度还是RGB?
--
FROM 180.98.144.*
我测试了 QImage 保存 47264 x 23624 的图像没有任何问题。
应该是你生成图像出了问题。
如果你用 QPainter 在图像上画图像。那只能画到 32768.
【 在 hengcuiyuan 的大作中提到: 】
: tiff格式和png格式都试过,只有一半的图形试对的,另外一半全部空白,有人遇到这种问题吗?
: 宽度和高度的像素点很多,47264 x 23624,200M的图形
--
FROM 123.113.230.*
牛呀,我就是用了QPainter画图,然后保存的呀,那有什么办法可以画大图吗?QT怎么这么坑呀?
【 在 dormouseBHU 的大作中提到: 】
: 我测试了 QImage 保存 47264 x 23624 的图像没有任何问题。
: 应该是你生成图像出了问题。
: 如果你用 QPainter 在图像上画图像。那只能画到 32768.
: ...................
--
FROM 113.70.88.*
那就别用 QPainter 了。自己在图像上画。。。
【 在 hengcuiyuan 的大作中提到: 】
: 牛呀,我就是用了QPainter画图,然后保存的呀,那有什么办法可以画大图吗?QT怎么这么坑呀?
:
--
FROM 123.113.230.*
你需要一个绘图引擎,可以试试 Cario。用这个在 QImage 上画图形。
我没用过 Cario,不知道行不行。。。
【 在 hengcuiyuan 的大作中提到: 】
: 牛呀,我就是用了QPainter画图,然后保存的呀,那有什么办法可以画大图吗?QT怎么这么坑呀?
:
--
FROM 123.113.230.*
找到一种凑合能用的解决办法。
可以把这个大图分割成左右两个小图,两个小图分别绘制图形。
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.*
这样是可以的
【 在 dormouseBHU 的大作中提到: 】
: 找到一种凑合能用的解决办法。
: 可以把这个大图分割成左右两个小图,两个小图分别绘制图形。
: QImage img(47264 , 23624, QImage::Format_Grayscale8);
: ...................
--
FROM 14.212.85.*
这种方法似乎对单色图失灵了。我这一直画不上任何图案
【 在 hengcuiyuan 的大作中提到: 】
: 这样是可以的
:
--
FROM 123.113.230.*