我想使用C++更精確地使用Qt Framework來顯示圖像。 的圖像已ImageIO.write方法以這種方式編碼:使用Qt解碼使用Java ImageIO編碼的圖像
BufferedImage originalImage = ImageIO.read(new File("c:\\image.jpg"));
// convert BufferedImage to byte array
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(originalImage, "jpg", baos);
baos.flush();
imageInByte = baos.toByteArray();
baos.close();
然後ByteArrayOutputStream的內容簡單地傾倒在一個文件image.out,這是我需要回到轉換爲圖像文件但使用C++。 我看到文件image.jpg的大小大於image.out文件的大小,所以Java必須進行一些我不知道的壓縮或編碼。所以我不能只將圖像作爲JPG讀取,並將其放入QImage或QPixmap對象中。
有誰知道ImageIO類如何編碼圖像?
你是否試過用Qt來閱讀它? – Mat
不,我沒有。我只是試圖用GIMP和Windows圖像查看器打開它並都失敗。我認爲Qt需要一個jpg格式的圖像,而不是這種類型的編碼。 – Bemipefe
爲什麼你解碼圖像只是爲了再次編碼?爲什麼不在Qt中打開圖像?或者您是否打算在Java中添加圖像處理? PS:使用'ImageIO.write(...)'將以特定於格式的默認設置對圖像進行編碼。如果你想要更多的控制,使用'ImageReader'和'ImageWriter'並指定質量設置,元數據等。 – haraldK