canvas新建画布,并将绘画结果保存到本地。
2015-08-31 17:17
183 查看
其实画图就是在画布上画出图形。废话不多说,直接上代码
bitmap = Bitmap.createBitmap(600, 600, Config.ARGB_8888);
//用createBitmap方法实例化一个新bitmap,bitmap并没有指定的图片
Canvas canvas = new Canvas(bitmap);//将bitmap作为画布
canvas.drawColor(Color.WHITE);//设置画布的背景颜色
Paint paint = new Paint();//新建一个画笔
paint.setAntiAlias(true);//抗锯齿效果
paint.setStyle(Style.STROKE);//空心圆效果
paint.setColor(Color.RED);
canvas.drawCircle(200, 120, 80, paint);
canvas.drawCircle(240, 80, 20, paint);
canvas.drawCircle(160, 80, 20, paint);
canvas.drawLines(new float[]{
200,100, 190,120,
200,100,210,120,
190,120,210,120}, paint);//三角形,坐标(200,100),( 190,120),(210,120)两两连线画图
// RectF rectF=new RectF(80, 100, 120, 30);
canvas.drawLine(160, 180, 240, 180, paint);//直线
// canvas.drawBitmap(bitmap,100, 100,paint);
photo.setImageBitmap(bitmap);
save();
接下来画好了圆,三角形鼻子,直线嘴巴,就可以保存图片了。
public void save(){
FileOutputStream fos=null;
try {
File file = new File(“/sdcard/pictures”);
if (!file.exists()) {
file.mkdir();//不存在该文件夹就重新创建
}
fos=new FileOutputStream(new File(file,System.currentTimeMillis()+”.jpg”));//jpg后缀
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
其实代码就这么多了。
bitmap = Bitmap.createBitmap(600, 600, Config.ARGB_8888);
//用createBitmap方法实例化一个新bitmap,bitmap并没有指定的图片
Canvas canvas = new Canvas(bitmap);//将bitmap作为画布
canvas.drawColor(Color.WHITE);//设置画布的背景颜色
Paint paint = new Paint();//新建一个画笔
paint.setAntiAlias(true);//抗锯齿效果
paint.setStyle(Style.STROKE);//空心圆效果
paint.setColor(Color.RED);
canvas.drawCircle(200, 120, 80, paint);
canvas.drawCircle(240, 80, 20, paint);
canvas.drawCircle(160, 80, 20, paint);
canvas.drawLines(new float[]{
200,100, 190,120,
200,100,210,120,
190,120,210,120}, paint);//三角形,坐标(200,100),( 190,120),(210,120)两两连线画图
// RectF rectF=new RectF(80, 100, 120, 30);
canvas.drawLine(160, 180, 240, 180, paint);//直线
// canvas.drawBitmap(bitmap,100, 100,paint);
photo.setImageBitmap(bitmap);
save();
接下来画好了圆,三角形鼻子,直线嘴巴,就可以保存图片了。
public void save(){
FileOutputStream fos=null;
try {
File file = new File(“/sdcard/pictures”);
if (!file.exists()) {
file.mkdir();//不存在该文件夹就重新创建
}
fos=new FileOutputStream(new File(file,System.currentTimeMillis()+”.jpg”));//jpg后缀
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
} catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); Log.i("tips", "fail to save "); }finally{ if (fos!=null) { try { fos.close(); fos.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Log.i("tips", "success to save "); } } }
其实代码就这么多了。
相关文章推荐
- 按右键另存图片只能存BMP
- photoshop去除图片上的水印
- upload上传单张图片
- 图片引发的溢出危机(图)
- C#实现把彩色图片灰度化代码分享
- C#将图片和字节流互相转换并显示到页面上
- C#监控文件夹并自动给图片文件打水印的方法
- 纯CSS实现的当鼠标移上图片添加阴影效果代码
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法
- 随鼠标移动的图片或文字特效代码
- CSS 图片横向排列实现代码
- C#实现将Email地址转成图片显示的方法
- 超级经典一套鼠标控制左右滚动图片带自动翻滚
- 用css实现图片垂直居中的使用技巧
- C++实现读取图片长度和宽度
- C#实现图形位置组合转换的方法
- PHP根据图片色界在不同位置加水印的方法
- php通过修改header强制图片下载的方法
- PHP安全上传图片的方法
- 使用GD库生成带阴影文字的图片