Qt 不能用一个通道保存图像吗?
Qt save image with one channel not possible?
我有一个缓冲区,里面装满了一些图像数据(640x480 像素,一个通道 [灰度])。我想使用 Qt(作为 BMP 或 PNG)将此图像写入我的磁盘。
预期大小 BMP:300 KB
实际大小 BMP:900 KB
看来Qt的save方法不能处理一个通道的图片。这是一个已知的 Qt 错误还是我做错了什么?
QImage const img((char const *)data, image.width, image.height, QImage::Format_Grayscale8)
QPixmap::fromImage(img).save(path, "BMP")
我尝试使用 Qt 5.3 和 5.7
编辑:
使用这个已有 8 年历史的解决方法似乎可行 http://www.qtcentre.org/archive/index.php/t-10237.html,但图像看起来太亮了 :(
我认为出现问题是因为您 没有 保存 QImage
-- 您正在将它转换为 QPixmap
然后保存它.似乎是 QImage
到 QPixmap
的转换导致格式更改。
如果要保存为灰度 bmp 文件,只需保存 QImage
.
我有一个缓冲区,里面装满了一些图像数据(640x480 像素,一个通道 [灰度])。我想使用 Qt(作为 BMP 或 PNG)将此图像写入我的磁盘。
预期大小 BMP:300 KB
实际大小 BMP:900 KB
看来Qt的save方法不能处理一个通道的图片。这是一个已知的 Qt 错误还是我做错了什么?
QImage const img((char const *)data, image.width, image.height, QImage::Format_Grayscale8)
QPixmap::fromImage(img).save(path, "BMP")
我尝试使用 Qt 5.3 和 5.7
编辑: 使用这个已有 8 年历史的解决方法似乎可行 http://www.qtcentre.org/archive/index.php/t-10237.html,但图像看起来太亮了 :(
我认为出现问题是因为您 没有 保存 QImage
-- 您正在将它转换为 QPixmap
然后保存它.似乎是 QImage
到 QPixmap
的转换导致格式更改。
如果要保存为灰度 bmp 文件,只需保存 QImage
.