【Android】【Java】内部ストレージに画像ファイルを保存する(png) 
2014/07/11 Fri [edit]
基本的には「内部ストレージにテキストファイルを保存する」と同じ考え方で、ストリームを開いた後は、画像フォーマットによるエンコード処理に置き換えれば良い。
//内部ストレージに、画像ファイルを保存する(png) (Android 用)
public static final boolean savePngLocalStorage(String fileName, Bitmap bitmap, Context context) throws IOException {
BufferedOutputStream bos = null;
Bitmap tmp = null;
try {
bos = new BufferedOutputStream(context.openFileOutput(fileName, Context.MODE_PRIVATE)); //他アプリアクセス不可
tmp = bitmap.copy(Config.ARGB_8888, true);
return tmp.compress(Bitmap.CompressFormat.PNG, 100, bos);
} finally {
if (tmp != null) {
tmp.recycle();
tmp = null;
}
try {
bos.close();
} catch (Exception e) {
//IOException, NullPointerException
}
}
}
//メインでは... (※例外処理は省略)
String fileName = "sample.png"; // "data/data/[パッケージ名]/files/sample.png" となる
savePngLocalStorage(fileName, bitmap, this); //bitmap は保存する画像/this は起動した Activity が良い(Context)
//ファイルが保存されていれば成功(エミュレータならDDMSで確認できる)
例外処理は手抜きしてるので、必要あれば適当に。
とりあえず、PNG フォーマットで、画質100固定になっているので、引数で変更しても良いだろう。エンコードは Bitmap クラスの compress() メソッドを使っているが、他のエンコーダーを用意しても良い。戻値の boolean は compress() の成功をそのまま返しているが、必要なければ無視しても良い。
ちなみにファイルの削除は Context.deleteFile() で簡単にできる。
(関連記事)
【Android】内部ストレージに画像ファイルを保存する(jpg)
【Android】内部ストレージから画像ファイルを読み込む
【Android】内部ストレージからテキストファイルを読み込む
【Android】内部ストレージにテキストファイルを保存する
【Android】SDカードに画像ファイルを保存する(png)
【Android】SDカードに画像ファイルを保存する(jpg)
【Android】assets フォルダから画像ファイルを読み込む
【Android】【Applet】【Java】テキストファイルの読み込み・保存 まとめ
- 関連記事
トラックバック
トラックバックURL
→http://fantom1x.blog130.fc2.com/tb.php/136-17546189
この記事にトラックバックする(FC2ブログユーザー)
| h o m e |