画像をデータベースに保存する為にbyte型に変換する必要があったので、調べてみた。
ソースコードはtry-catchを省略しているので、適宜入れるように。

//Bitmap to Bytes
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(CompressFormat.PNG, 100, baos);
byte[] bytes = baos.toByteArray();

byteに変換すれば、データベースにも保存できる。

//Bytes to Bitmap
Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);

戻すのは簡単。
大きい画像を取り出す場合は、optionを使って色々弄る必要があるかも。

//Bitmap to File
FileOutputStream fos = openFileOutput("test.png", Context.MODE_PRIVATE);
bitmap.compress(CompressFormat.PNG, 100, baos);
fos.flush();
fos.close();

ファイルに保存する場合はFileOutputStreamを使う。
読み込みに関してはBitmapFactory.decodeFileを使えば読み出せる。
書き込み時にファイルのパスを省略しているが、読み出す時はフルパスが必要っぽい。

カテゴリ/タグ:私の記憶領域 /  , ,    
コメント (0)


コメントフォーム(注:投稿内容にURLがある場合、管理者の確認の上で公開する設定になっています)