この質問は私の前の質問に関連していますが、理解するためにそれを読む必要はありません。
今、ビットマップを小さな部分に変換してから、それらの小さな部分を保存しようとしていました。
私が得る問題は、サイズが完全な画像よりもはるかに大きいファイルに最初の部分のみが保存されることです。以下は私が使用しているコードです:
for (int i = 0; i < Image.getHeight(); i++)
{
fout = new FileOutputStream(file, true);
Bitmap temp = Bitmap.createBitmap(Image, 0, i,Image.getWidth(), 1);
temp.compress(Bitmap.CompressFormat.PNG, 100, fout);
fout.flush();
fout.close();
}
コードは非常に単純ですが、最初の行だけがファイルに書き込まれる理由がわかりません。
更新:: マーリンとディーパックは正しいです。別の名前を付けて試してみたところ、すべての部分が別のファイルに正常に書き込まれました。これで問題がわかりました。2 番目のチャンクからヘッダーを削除し、最初のチャンクから eof を削除する必要がありますか?