PNG 画像の末尾に追加情報を追加する Android アプリケーション用のライブラリを開発しています。DataOutputStream変数を作成し、PNG を開いてDataInputStreamを使用して Bitmap に変換するときに使用する追加情報を末尾に書き込みます。画像コードがいつ終了し、追加情報が開始されるかを区別するためのマーカーを追加しました。
余分なデータがマーカーの後に正しく追加されています。問題は、 DataInputStreamの PNG データのみを読み取ってビットマップに変換することです。すべてのDataInputStreamが読み取られています (マーカーの前に大量のプレースホルダー バイトを追加しても)。
ストリームの PNG 部分を読み取るために使用している実装は次のとおりです。
ビットマップ画像 = BitmapFactory.decodeStream(inputStream);
PNGデータバイトの後にストリームの読み取りを停止するためにこれを実装する必要がある別の方法があるかどうか疑問に思っています。
より良い方法がない場合、私が取ろうとしているルートは、入力ストリームを配列にコピーすることです。次に、マーカーに到達するまですべてのデータを読み取ります。