CMA
CMA

Reputation: 2818

android: convert canvas to bitmap then save to SD card

i'm developing an android app where I can draw on a canvas. I want to convert my canvas to bitmap and then save it in jpeg format on my sd card..

how can i properly do this?

Upvotes: 1

Views: 5522

Answers (2)

Jeremy D
Jeremy D

Reputation: 4855

Something like that should work :

http://developer.android.com/reference/android/view/View.html#getDrawingCache(boolean)

public void toJPEGFile(){
    File folder = new File(Environment.getExternalStorageDirectory()+"/folder/");
    if(!folder.exists()) folder.mkdirs();

    try {
        this.setDrawingCacheEnabled(true);
        FileOutputStream fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory()+"/folder/file"));
        Bitmap bitmap = this.getDrawingCache();
        bitmap.compress(CompressFormat.JPEG, 100, fos);
        fos.flush();
        fos.close();
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }



}

Upvotes: 5

jtt
jtt

Reputation: 13541

Did you look up the documentation?

Canvas API

You can use the:

public Canvas (Bitmap bitmap)

    Since: API Level 1
    Construct a canvas with the specified bitmap to draw into. The bitmap must be mutable.
    The initial target density of the canvas is the same as the given bitmap's density.
    Parameters

    bitmap  Specifies a mutable bitmap for the canvas to draw into.

Upvotes: 2

Related Questions