私はカメラと通信し、生の画像データを取り出すC++アプリケーションを持っています。 次に、私はJNIでJavaに送信したいC++のByte []を持っています。Javaでraw byte []からBMPファイルを作成するには
しかし、生のByte []を実際のファイル形式に変換する必要があります(.bmpが私の最初の選択でした)。 BITMAPFILEINFOとBITMAPHEADERINFOを使用してC++からハードドライブ上のファイルに書き込むと簡単に実行できますが、全体フォーマットをJavaに送信する方法がわかりません。
次に、私は生のバイト[]データをJNIを使って送信し、それを .bmpに変換することを考えましたが、Javaでこれを行うための良いライブラリを見つけることができないようです。
私の最高の選択肢は何ですか? C++でイメージを変換し、JNIを使ってイメージを送信するか、RAWデータをJavaに送信してから.bmpに変換しますか?どのように私はこれを達成するのが簡単でしょうか?
この解決策は私のためには機能しません。 imageは常にnullとして返されます。したがって、ImageIO.writeは例外をスローします。私のバイト配列は生のY画像データです。もっと詳しく説明できますか? –
あなたのbyteArrayが有効な画像であることは確かですか? 'image == null'を取得する唯一の方法は、ストリームをデコードできるImageReaderが登録されていない場合です。だから、私の推測では、サポートされていないファイルタイプか、またはデータが破損しているファイルタイプのいずれかです。 – Stroboskop
4:0:0の比率のYUV画像データ。 –