2013年7月17日水曜日

Androidのcanvasに描画したイメージを画像ファイルで保存する

アプリの中でcanvasに描画したイメージを画像として保存するという機能を付けたくなることがありますが、こんな感じで簡単に出力できます。

    //保存用Bitmap準備
    Bitmap image = Bitmap.createBitmap(640, 480, Config.ARGB_8888);
    //新しいcanvasに保存用Bitmapをセット
    Canvas canvas = new Canvas(image);
    //canvasに対して描画
    try {
        //出力ファイルを準備
        FileOutputStream fos = new FileOutputStream(new File("sample.png"));
        //PNG形式で出力
        image.compress(CompressFormat.PNG, 100, fos);
        fos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
image.compressの部分は
public boolean compress (Bitmap.CompressFormat format, int quality, OutputStream stream)
というような仕様になってますので、必要に応じてFormatをCompressFormat.JPEGに変えたりqualityの部分は0-100間で指定してください。

0 件のコメント:

コメントを投稿