图片处理,圆形圆角描边
来源:互联网 发布:css布局 书籍 知乎 编辑:程序博客网 时间:2024/05/16 00:24
1.圆形描边
public static Bitmap getCircleCornerBitmap(Bitmap source,int strokeWidth){ if (source == null || source.isRecycled()) { return null; } int srcBitmapWidth = source.getWidth(); int srcBitmapHeight = source.getHeight(); boolean isY;//是否根据y轴来切 int targetLength=(isY=srcBitmapWidth<srcBitmapHeight)?srcBitmapWidth:srcBitmapHeight;//取图片较短的边来作为要生成图片的长和宽 Bitmap targetBitmap=Bitmap.createBitmap(targetLength+strokeWidth*2,targetLength+strokeWidth*2, Bitmap.Config.ARGB_8888); Canvas canvas=new Canvas(targetBitmap); canvas.save();//保存画布,为画布移动作准备 canvas.translate(strokeWidth,strokeWidth);//移动画布,为的是生成圆形头像居中 Paint paint = new Paint(); paint.setAntiAlias(true); RectF dstRectF=new RectF(0,0,targetLength,targetLength); canvas.drawRoundRect(dstRectF,targetLength/2,targetLength/2,paint);//创建一个矩阵圆 Rect srcRect ;//源图片要截取对应的矩阵 if(isY){ srcRect = new Rect(0, (srcBitmapHeight-targetLength)/2,targetLength, (srcBitmapHeight-targetLength)/2+targetLength); }else{ srcRect=new Rect((srcBitmapWidth-targetLength)/2,0,(srcBitmapWidth-targetLength)/2+targetLength,targetLength); } //关键方法,用于合成圆形图片,若有不明白的,可参照:http://blog.csdn.net/wangduanqing5945/article/details/38796269 paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(source,srcRect,dstRectF,paint); canvas.restore();//对应canvas.save()来使用,为了恢复画布,为描边做准备 Paint strokePaint=new Paint();//描边的画笔 strokePaint.setAntiAlias(true); strokePaint.setStyle(Paint.Style.STROKE); //透明度5% strokePaint.setColor(Color.argb(13, 0, 0, 0)); strokePaint.setStrokeWidth(strokeWidth); canvas.drawCircle(targetLength/2+strokeWidth,targetLength/2+strokeWidth,targetLength/2,strokePaint);//描边就是画一个圆形 return targetBitmap; }
2.圆角
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) { Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff000000; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); final float roundPx = pixels; paint.setAntiAlias(true); // canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output;}
透明度
100% — FF
95% — F2
90% — E6
85% — D9
80% — CC
75% — BF
70% — B3
65% — A6
60% — 99
55% — 8C
50% — 80
45% — 73
40% — 66
35% — 59
30% — 4D
25% — 40
20% — 33
15% — 26
10% — 1A
5% — 0D
0% — 00
格式如#00FFFFFF,前两位代表不透明度的十六进制。00表示完全透明,FF就是全不透明。依次递增。
0 0
- 图片处理,圆形圆角描边
- 圆形图片的处理
- IOS 图片处理成圆形
- 将图片处理成圆形
- iOS 画图 图片圆形处理
- 图片处理 缩放与圆形
- 将图片处理成圆形
- php 图片圆形化处理
- css圆形图片处理示例(方形图片变圆形图片)
- android图片处理,让图片变成圆形
- android 将图片处理为圆形
- Bitmap 处理圆形图片工具类
- 安卓圆形图片处理方法
- Glide加载圆形图片的处理
- Android:继承ImageView 实现 圆角图片,圆形图片处理。
- QML 头像方形图片处理为圆形图片方法
- ios 图片处理-专辑封面头像旋转-裁剪圆形图片
- java 图片叠加和文字添加,图片圆形处理
- CSU 1895 Apache is late again(根号2加1的n次方)
- 原生JS添加鼠标事件
- 数字的大写字母的乱序整理
- Android Native嵌入React Native模块
- uva401Palindromes(回文串和镜像串的判断)
- 图片处理,圆形圆角描边
- AngularJS之使用服务封装
- Vim快速选中、删除、复制引号或括号中的内容
- flume+kafka+hdfs日志系统
- 七.Scala 运算符
- Android 动画-Interpolator和TypeEvaluator
- kubenetes中指定web服务器使用的数据库(集群配置管理方案--ConfigMap)
- Android异步消息处理 (Handler)
- vijos——1214伤心的AsukaNoKaze