如何在QT中将图像格式转换为ARG1555?
我是qt的新手,想用它写一个新的程序,这将是第一个。我想在加载图像后更改图像格式和大小。但是,我在支持的格式中找不到ARGB1555格式。如何将其格式转换为ARGB1555?我想要这种格式,因为它将用于基于裸机mcu的hmi项目,因此需要更少的内存。可以访问QImage的原始像素数据如何在QT中将图像格式转换为ARG1555?,qt,Qt,我是qt的新手,想用它写一个新的程序,这将是第一个。我想在加载图像后更改图像格式和大小。但是,我在支持的格式中找不到ARGB1555格式。如何将其格式转换为ARGB1555?我想要这种格式,因为它将用于基于裸机mcu的hmi项目,因此需要更少的内存。可以访问QImage的原始像素数据 const uchar * QImage::bits() const 将其转换为int(4bytes=pixel)并使用此函数进行转换 unsigned short ARGB8888toARGB1555(unsi
const uchar * QImage::bits() const
将其转换为int(4bytes=pixel)并使用此函数进行转换
unsigned short ARGB8888toARGB1555(unsigned int c)
{
return (unsigned short)(((c>>16)&0x8000 | (c>>9)&0x7C00 | (c>>6)&0x03E0 | (c>>3)&0x1F));
}
参考:更改大小-是的,可以通过缩放图像来实现。格式的改变——我真的怀疑是否有这样的功能。您可能必须自己执行此操作(我强烈建议不要执行此操作)或使用第三方库(很多)。但是,支持的格式中也没有argb888,QImage::Format_argb32该图像使用32位ARGB格式(0xAARRGGBB)存储。8+8+8+8 = 32 !