画像をデータベースに保存する為に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を使えば読み出せる。
書き込み時にファイルのパスを省略しているが、読み出す時はフルパスが必要っぽい。
コメントフォーム(注:投稿内容にURLがある場合、管理者の確認の上で公開する設定になっています)