利用QFile讀寫圖片到QByteArray的使用注意

想要做這麼一件事情,把一個xml文件和一張 jpg圖片合併到一個文件中,自定義文件的後綴。

大概是這麼做的:

1、從文件中讀取到QByteArray

不貼代碼了,自行百度有很多。

2、把兩段QByteArray相加。

3、把QByteArray寫入到文件

//ByteDate 爲字節流
QFile File(QString::fromLocal8Bit(ImgFileName.data()));
File.open(QIODevice::WriteOnly);
File.write(ByteDate);
File.close();

 

遇到的問題:

把.jpg文件讀取到QByteArray,再保存到.jpg文件時,文件貌似出了點兒問題,反正調用opencv的 imread讀取的圖像效果不對頭。源圖是單通道的,轉成QByteArray後再保存成.jpg文件,opencv讀取後變成了三通道,有時候會出現某些像素點全黑的情況。

最後發現問題所在:

即,讀取xml文件文件時,File.open(QIODevice::WriteOnly | QIODevice::Text);

讀取圖像文件時,File.open(QIODevice::WriteOnly);//一定不能夠加上QIODevice::Text

參考鏈接

https://blog.csdn.net/qq_24127015/article/details/84024465

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章