• Bitmap数据处理


    把直角图片改为圆角,通过改roundPx这个参数
    fun toRoundBitmap(bitmap: Bitmap): Bitmap? {
    var width = bitmap.width
    var height = bitmap.height
    val roundPx: Float
    val left: Float
    val top: Float
    val right: Float
    val bottom: Float
    val dst_left: Float
    val dst_top: Float
    val dst_right: Float
    val dst_bottom: Float
    if (width <= height) {
    roundPx = width / 2.toFloat()
    left = 0f
    top = 0f
    right = width.toFloat()
    bottom = width.toFloat()
    height = width
    dst_left = 0f
    dst_top = 0f
    dst_right = width.toFloat()
    dst_bottom = width.toFloat()
    } else {
    roundPx = height / 2.toFloat()
    val clip = (width - height) / 2.toFloat()
    left = clip
    right = width - clip
    top = 0f
    bottom = height.toFloat()
    width = height
    dst_left = 0f
    dst_top = 0f
    dst_right = height.toFloat()
    dst_bottom = height.toFloat()
    }
    val output = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
    val canvas = Canvas(output)
    val color = -0xbdbdbe
    val paint = Paint()
    val src = Rect(left.toInt(), top.toInt(), right.toInt(), bottom.toInt())
    val dst = Rect(dst_left.toInt(), dst_top.toInt(), dst_right.toInt(), dst_bottom.toInt())
    val rectF = RectF(dst)
    paint.isAntiAlias = true // 设置画笔无锯齿
    canvas.drawARGB(0, 0, 0, 0) // 填充整个Canvas
    paint.color = color

    // 以下有两种方法画圆,drawRounRect和drawCircle
    // canvas.drawRoundRect(rectF, roundPx, roundPx, paint);// 画圆角矩形,第一个参数为图形显示区域,第二个参数和第三个参数分别是水平圆角半径和垂直圆角半径。
    canvas.drawCircle(roundPx, roundPx, roundPx, paint)
    paint.xfermode = PorterDuffXfermode(PorterDuff.Mode.SRC_IN) // 设置两张图片相交时的模式,参考http://trylovecatch.iteye.com/blog/1189452
    canvas.drawBitmap(bitmap, src, dst, paint) //以Mode.SRC_IN模式合并bitmap和已经draw了的Circle
    return output
    }
  • 相关阅读:
    Python函数高级
    Python 2和3的区别
    GIL,python全局解释器锁
    Python中的 list
    python中的单例
    新式类和经典类
    整理的排序算法
    Python的双下划方法
    Python 中闭包函数和装饰器
    面向对象,特性之继承
  • 原文地址:https://www.cnblogs.com/liunx1109/p/14286018.html
Copyright © 2020-2023  润新知