最近项目中要有一个需求,从相册中选取照片上传,后服务器返回照片返回宽高,然后在上面画矩形。以下是实现方式:
1:我们要在原有的图片上画东西,因此我们要将图片设置为bitmap,因项目需要图片无压缩。因此只需要简单的读取一下
Bitmap bitmap=null
File f=new File(filepath); //filepath是你图片的路径
if(f==null){
return null;
}
FileInputStream fis=null;
try{
fis=new FileInputStream(f);
bitmap= BitmapFactory.decodeStream(fis);
fis.close;
}
catch(Exception e){
e.printStackTrace();
}
到此我们就将图片转化为bitmap 了,其次我们需要开始在图片上画我们需要的东西了
2:Bitmap bitmaps=bitmap.copy(Bitmap.config.ARGB.8888,true);
//设置画布
Canvas canvas=new Canvas(bitmaps);
//设置画笔
Panit panit=new Panit();
panit.setcolor(Color.RED);//设置画笔的颜色
paint.setStyle(Paint.Style.STROKE);//设置模式
paint.setStrokeWidth(10);设置画笔的粗细
canvas.drawRect(10,20,50,80);
//将画完之后的图片展示
img_photo.setImageBitmap(bitmaps);
//或者将图片转化为Uri
Uir uri=Uri.parse(MediaStore.Images.Media.insertImage(getContentResolver(),bitmaps,null,null));
到此我们得任务就结束了!!