zoukankan      html  css  js  c++  java
  • android 下滤镜效果的实现

    android 下滤镜效果的实现

    滤镜过滤颜色已实现,简单版本可通过下面代码的3个参数实现黑白、红、绿。。。等7种过滤(RGB的7种组合)。

    理论上讲可以过滤为任意颜色。调整混合结果的比值就行了。

    public void drawBitmap(Canvas canvas, Bitmap bitmap, boolean r, boolean g, boolean b) {
    ColorMatrix cm = new ColorMatrix();
    float[] m = cm.getArray();
    setColorFilterMatrix(m, r, g, b);
    Paint pt = new Paint();
    pt.setColorFilter(new ColorMatrixColorFilter(cm));
    canvas.drawBitmap(bitmap, 0, 0, pt);
    }

    public void setColorFilterMatrix(float[] m, boolean r, boolean g, boolean b) {
    final float R = 0.213f;
    final float G = 0.715f;
    final float B = 0.072f;

    m[0] = 0;
    m[6] = 0;
    m[12] = 0;

    if (r) {
    m[0] = R; m[1] = G; m[2] = B;
    }
    if (g) {
    m[5] = R; m[6] = G; m[7] = B;
    }
    if (b) {
    m[10] = R; m[11] = G; m[12] = B;
    }
    }

  • 相关阅读:
    计算长度的方法
    自动装箱和拆箱
    基本数据包装类
    Date类
    文档参数解析
    权限修饰符
    IO流
    ArrayList集合类
    对象数组
    二维数组
  • 原文地址:https://www.cnblogs.com/qiaoxu/p/3989951.html
Copyright © 2011-2022 走看看