我有一個C++應用程序,它可以與相機進行通信並獲取原始圖像數據。 然後我在C++中有一個Byte [],我想用JNI發送給Java。如何在Java中使用原始字節[]創建BMP文件
但是,我需要將原始字節[]轉換爲真正的文件格式(.bmp是我的第一選擇)。 如果我使用BITMAPFILEINFO和BITMAPHEADERINFO將它從C++寫入硬盤驅動器上的文件,我可以輕鬆地做到這一點,但我不知道如何將整個格式發送到Java。
然後我想使用JNI只發送原始字節[]數據,然後將其轉換爲 .bmp,但我似乎無法找到任何用於在Java中執行此操作的好庫。
什麼是我最好的選擇?在C++中轉換圖像,然後使用JNI發送它,或者將RAW數據發送給Java,然後將其轉換爲.bmp?我最容易做到這一點?
此解決方案不適合我。圖像總是返回爲空。所以ImageIO.write會拋出異常。我的字節數組是一個原始的Y圖像數據。你能詳細解釋一下嗎? – 2014-01-09 06:12:24
你確定你的byteArray是一個有效的圖像嗎?我認爲獲得`image == null`的唯一方法是如果沒有註冊的ImageReader可以解碼你的流。所以我的猜測是,這是一種不受支持的文件類型或損壞的數據。 – Stroboskop 2014-01-09 11:27:49