BitmapのPNGやJPEG形式での保存

Android端末で扱える画像形式には次の3つがあります。

WEBPというのはGoogleが独自に開発している画像形式のことです。

これら3つの形式の中から1つを選んで画像を保存することができます。

例えばBitmapクラスをint型配列から作成し、それをPNG形式としてファイルに保存するには次のようなコードを書きます。

int width = 100, height = 50;
int[] pixels = new int[width * height];
for(int hi = 0; hi < height; ++hi){
    for(int wi = 0; wi < width; ++wi){
        pixels[hi * width + width] = 255 << 24 | 255 << 16 | 255 << 8 | 255;
            //全てのピクセルを白で初期化
    }
}

Bitmap bitmap = Bitmap.createBitmap(pixels, width, height, Bitmap.Config.ARGB_8888);
    //保存するBitmap画像
if(bitmap != null){
    try{
        FileOutputStream fileStream = new FileOutputStream(imageFile);
        saveBitmap.compress(Bitmap.CompressFormat.PNG, 100, fileStream);
            //画像をPNG形式として保存
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}

この例のようにいったんint配列などからBitmapインスタンスを作り、その後Bitmapクラスのcompressメソッドを使って画像形式とストリームを渡して画像を保存します。

利用できる画像形式の名前はBitmap.CompressFormatに一覧が載っています。

関連項目
プライバシーポリシー