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