項目中遇到一個問題,直接調用QImage的loadFromData函數無法加載16位的圖片,最終沒有找到如果使用loadFromData加載16位圖片的方式,倒是可以用構造函數從內存中加載16bit的圖片,代碼如下:
1 QImage image("test.tif"); 2
3 image.save("D:/test/image.tif", "TIF"); //! [主要測試test.tif圖片有沒有加載成功,D 盤test目錄下生成了image.tif圖片,從本地加載成功]
4
5 const uchar* imagedatas = image.bits(); //! [獲取圖片在內存中的地址]
6
7
8 QImage image2(imagedatas, image.width(), image.height(), image.width() * sizeof (quint16), QImage::Format_Grayscale16); //! [測試圖片是一張灰度圖片,所有這里使用的是Format_Grayscale16,主要是第四個參數]
9 image2.save("D:/test/image2.tif"); //! [保存成功]