1. ホーム
  2. android

[解決済み】ビットマップを保存する場所について

2022-02-11 09:46:38

質問

Webサーバーから画像をダウンロードして画面に表示し、ユーザーが画像を残したい場合はSDカードの特定のフォルダーに保存する機能を作っています。ビットマップを取得して、SDカードの好きなフォルダに保存するだけの簡単な方法はないでしょうか?

私の問題は、画像をダウンロードし、ビットマップとして画面に表示することができることです。画像を特定のフォルダに保存するために私が見つけることができた唯一の方法は、FileOutputStreamを使用することですが、それにはバイト配列が必要です。Bitmapからbyte配列に変換して、FileOutputStreamでデータを書き込む方法がよくわかりません。

もう1つの選択肢は、MediaStoreを使うことです。

MediaStore.Images.Media.insertImage(getContentResolver(), bm,
    barcodeNumber + ".jpg Card Image", barcodeNumber + ".jpg Card Image");

SDカードへの保存はうまくいくが、フォルダのカスタマイズができない。

解決方法は?

try (FileOutputStream out = new FileOutputStream(filename)) {
    bmp.compress(Bitmap.CompressFormat.PNG, 100, out); // bmp is your Bitmap instance
    // PNG is a lossless format, the compression factor (100) is ignored
} catch (IOException e) {
    e.printStackTrace();
}