如何将Canvas中内容保存为图片

由于工作需要研究了一下如何将Canvas中的内容保存为图片,其实很简单,别的不多说,直接上代码。

Bitmap bm = Bitmap.createBitmap(320, 480, Config.ARGB_8888);
  Canvas canvas = new Canvas(bm);
  Paint p = new Paint();
  canvas.drawRect(50, 50, 200, 200, p);
  canvas.save(Canvas.ALL_SAVE_FLAG );
  canvas.restore();
 
  File f = new File("/sdcard/0.png");
  FileOutputStream fos = null;
  try {
   fos = new FileOutputStream(f);
   bm.compress(Bitmap.CompressFormat.PNG, 50, fos);
  } catch (FileNotFoundException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

这样就把Canvas中的内容保存成了sd卡上的一个png图片。简单说一下原理,自己create一个bitmap,然后让Canvas通过这个bitmap创建一个实例,然后在该canvas上绘制的内容都会画

在该bitmap上,保存Canvas的图层,然后把bitmap写到sd卡上的文件。注意:要在AndroidManifest.xml中添加在sd卡上读写文件的权限

<!-- 在SDCard中创建与删除文件权限 --> 
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> 
<!-- 往SDCard写入数据权限 --> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/7a55f170feb0cf4fd80513da9d52b76e.html