Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在QT中将图像格式转换为ARG1555?_Qt - Fatal编程技术网

如何在QT中将图像格式转换为ARG1555?

如何在QT中将图像格式转换为ARG1555?,qt,Qt,我是qt的新手,想用它写一个新的程序,这将是第一个。我想在加载图像后更改图像格式和大小。但是,我在支持的格式中找不到ARGB1555格式。如何将其格式转换为ARGB1555?我想要这种格式,因为它将用于基于裸机mcu的hmi项目,因此需要更少的内存。可以访问QImage的原始像素数据 const uchar * QImage::bits() const 将其转换为int(4bytes=pixel)并使用此函数进行转换 unsigned short ARGB8888toARGB1555(unsi

我是qt的新手,想用它写一个新的程序,这将是第一个。我想在加载图像后更改图像格式和大小。但是,我在支持的格式中找不到ARGB1555格式。如何将其格式转换为ARGB1555?我想要这种格式,因为它将用于基于裸机mcu的hmi项目,因此需要更少的内存。

可以访问QImage的原始像素数据

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 !