我想创建一个BMP 32位文件。
但是会创建一个BMP 24位图像。
如何将PNG 32位转换为BMP 32位?
这是我的代码
QImage image;
image.load("123.png");
QPixmap preview;
preview = preview.fromImage(image,Qt::DiffuseAlphaDither);
preview.save("123.bmp");
答案 0 :(得分:1)
关于bool qt_write_dib(QDataStream &s, QImage image)
中qbmphandler.cpp中的Qt 5源代码,支持32位的位图,但首先转换为24位(至少有第4个通道)。
见这里:
if (image.depth() == 8 && image.colorCount() <= 16) {
bpl_bmp = (((bpl+1)/2+3)/4)*4;
nbits = 4;
} else if (image.depth() == 32) {
bpl_bmp = ((image.width()*24+31)/32)*4;
nbits = 24;
} else {
bpl_bmp = bpl;
nbits = image.depth();
}
您可以查看我的小位图处理程序类here。可能会有所帮助。