Qt unsigned char* (uchar*) 转为QImage


场景:有一副图像,事先已经因为各种需要被读取到了内存中,且不可再根据路径读取,只能读取内存中的数据转为QImage

 1     //即使在已经知道图像宽高和格式的情况下,第一种方法依然无法成功转换  2  
 3     //方法1 不行
 4     QImage image((unsigned char*)imgData,1920,1080,QImage::Format_RGB32);  5  
 6     //方法2 QByteArray也可以
 7     image.loadFromData((unsigned char*)imgData,readLen,"JPG");  8  
 9     //方法3 QByteArray也可以
10     image = image.fromData((unsigned char*)imgData,readLen,"JPG");

我在使用fromData的时候,忽略了fromData的返回值,一直以为不能转换,后来才发现需要用image去接收转换结果

函数原型:

1 bool loadFromData(const uchar *buf, int len, const char *format = nullptr); 2 bool loadFromData(const QByteArray &data, const char *aformat = nullptr); 3  
4 static QImage fromData(const uchar *data, int size, const char *format = nullptr); 5 static QImage fromData(const QByteArray &data, const char *format = nullptr);

参数解释:

参数1:无符号字符型数据或者QByteArray数据

参数2:数据长度

参数3:需要转为什么格式的图片,选取错误可能会导致转换失败

照片支持格式列表: 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM