ビットマップを場所に保存する 質問する

ビットマップを場所に保存する 質問する

私は、Web サーバーから画像をダウンロードして画面に表示し、ユーザーが画像を保存したい場合は SD カードの特定のフォルダーに保存する機能を開発しています。ビットマップを取得して、それを SD カードの任意のフォルダーに保存する簡単な方法はありますか?

私の問題は、画像をダウンロードして、ビットマップとして画面に表示できることです。特定のフォルダーに画像を保存する唯一の方法は、FileOutputStream を使用することですが、それにはバイト配列が必要です。ビットマップからバイト配列に変換する方法 (これが正しい方法であるかどうか) がわからないため、FileOutputStream を使用してデータを書き込むことができます。

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

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

SD カードに保存するには問題なく機能しますが、フォルダーをカスタマイズすることはできません。

ベストアンサー1

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();
}

おすすめ記事