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