canvas处理图片为圆形或圆角矩形
2015-12-12 19:33
162 查看
将bitmap处理为圆形或圆角矩形可以使用canvas重新绘图,通过设置背景与图片的相交部分显示来得到圆形或圆角矩形图片
处理为圆形图片的方法
处理图片为圆角矩形的方法,基本和处理圆形方法一样,只是背景绘制为圆角矩形
通过设置bitmap为上述方法返回的bitmap即可得到圆角矩形图片与圆形图片
处理为圆形图片的方法
public static Bitmap getCircleBitmap(Bitmap bit) { Bitmap bitmap = Bitmap.createBitmap(bit.getWidth(), bit.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(bitmap);//传入参数后canvas的操作会影响图片 Paint paint = new Paint(); paint.setAntiAlias(true);// 设置抗锯齿 paint.setColor(Color.YELLOW); int radius = bitmap.getWidth()>bitmap.getHeight()?bitmap.getHeight():bitmap.getWidth();// 将较短的那一条边作为直径 canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2, radius / 2, paint);// 在图片中心画以radius/2为半径的圆形 // 设置相交保留且图片部分显示 paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); // 绘制图片 canvas.drawBitmap(bit, 0, 0, paint); return bitmap; }
处理图片为圆角矩形的方法,基本和处理圆形方法一样,只是背景绘制为圆角矩形
public static Bitmap getRoundBitmap(Bitmap bit) { Bitmap bitmap = Bitmap.createBitmap(bit.getWidth(), bit.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setColor(Color.YELLOW); // 绘制作为基准的圆角矩形 RectF rect = new RectF(0, 0, bit.getWidth(), bit.getHeight()); canvas.drawRoundRect(rect, 15, 15, paint);// 画圆角矩形 // 设置相交保留 paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bit, 0, 0, paint); return bitmap; }
通过设置bitmap为上述方法返回的bitmap即可得到圆角矩形图片与圆形图片
相关文章推荐
- Canvas 在高清屏下绘制图片变模糊的解决方法
- 按右键另存图片只能存BMP
- photoshop去除图片上的水印
- upload上传单张图片
- 图片引发的溢出危机(图)
- C#实现把彩色图片灰度化代码分享
- C#将图片和字节流互相转换并显示到页面上
- C#监控文件夹并自动给图片文件打水印的方法
- 纯CSS实现的当鼠标移上图片添加阴影效果代码
- C#实现打开画图的同时载入图片、最大化显示画图窗体的方法
- 随鼠标移动的图片或文字特效代码
- CSS 图片横向排列实现代码
- C#实现将Email地址转成图片显示的方法
- 超级经典一套鼠标控制左右滚动图片带自动翻滚
- 用css实现图片垂直居中的使用技巧
- C++实现读取图片长度和宽度
- PHP根据图片色界在不同位置加水印的方法
- php通过修改header强制图片下载的方法
- PHP安全上传图片的方法
- 使用GD库生成带阴影文字的图片