Android-android canvas保存为图片

UI设计界面 UI设计界面 主题:1059 回复:2190

Android-android canvas保存为图片

清晨说ぺ晚安 发布于 2017-04-17 字数 109 浏览 1244 回复 3

各位好,现在需要在调用canvas.drawBitmap和canvas,drawText后,将其保存为图片,该怎么做?望各位不吝赐教!

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(3

晚风撩人 2017-10-13 3 楼

将canvas的内容draw到一个bitmap里

Bitmap aBitmap = Bitmap.createBitmap(880, 1032, Bitmap.Config.ARGB_8888);
canvas.drawBitmap(mBitmap, mMatrix, paint);
OutputStream os = new FileOutputStream("/sdcard/" + tmpImg);
aBitmap .compress(CompressFormat.PNG, 100, os);

偏爱自由 2017-09-22 2 楼

File myCaptureFile = new File( + fileName + ".jpg");
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(myCaptureFile));
img.compress(Bitmap.CompressFormat.JPEG, 80, bos);
bos.flush();
bos.close();
来源: http://www.eoeandroid.com/thread-10946-1-1.html

晚风撩人 2017-09-19 1 楼

参考这个函数,主要使用getDrawingCache().compress函数来生成jpg图片。

public class Draw2d extends View {

    public Draw2d(Context context) {
        super(context);
        //这函数是要打开图形缓存,这样才能getDrawingCache
        setDrawingCacheEnabled(true);
    }

    @Override
    protected void onDraw(Canvas c) {
        Paint paint = new Paint();
        paint.setColor(Color.RED);          
        c.drawCircle(50, 50, 30, paint);

        try {
            getDrawingCache().compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(new File("/mnt/sdcard/arun.jpg")));
        } catch (Exception e) {
            Log.e("Error--------->", e.toString());
        }
        super.onDraw(c);
    }

}