Android–Paint画笔设置颜色过滤器

光照效果

/** LightingColorFilter(0xffffff,0x003000);* 第一个参数是去除照片中的某个颜色* 第二个参数是增加颜色更亮* 下面代码是绿色更亮* */LightingColorFilter lighting = new LightingColorFilter(0xffffff,0x003000);mPaint.setColorFilter(lighting);canvas.drawBitmap(bitmap,0,0,mPaint);
//红色去除掉LightingColorFilter lighting = new LightingColorFilter(0x00ffff,0x000000);mPaint.setColorFilter(lighting);canvas.drawBitmap(mBitmap, 0,0, mPaint);
//原始图片效果LightingColorFilter lighting = new LightingColorFilter(0xffffff,0x000000);mPaint.setColorFilter(lighting);canvas.drawBitmap(mBitmap, 0,0, mPaint);

颜色调节

/*
*颜色色值与照片叠加滤镜
*new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.ADD);
*第一个参数是叠加的颜色
*第二个参数是叠加的模式,这点跟ps中图片叠加模式相似
*/PorterDuffColorFilter proterDuffColorFilter = new PorterDuffColorFilter(Color.RED, PorterDuff.Mode.ADD);mPaint.setColorFilter(proterDuffColorFilter);canvas.drawBitmap(bitmap,100,0,mPaint);

上面代码效果如下

Android–Paint画笔设置颜色矩阵过滤器

float[] colorMatrix = {1,0,0,0,100, //red0,1,0,0,0, //green0,0,1,0,100, //blue0,0,0,1,0, //alpha};ColorMatrixColorFilter matrixColorFilter = new ColorMatrixColorFilter(colorMatrix);mPaint.setColorFilter(matrixColorFilter);canvas.drawBitmap(bitmap,100,0,mPaint);

常用的几个颜色矩阵过滤器

// 黑白public static final float colormatrix_heibai[] = {0.8f, 1.6f, 0.2f, 0, -163.9f,0.8f, 1.6f, 0.2f, 0, -163.9f,0.8f, 1.6f, 0.2f, 0, -163.9f,0, 0, 0, 1.0f, 0};// 怀旧public static final float colormatrix_huajiu[] = {0.2f, 0.5f, 0.1f, 0, 40.8f,0.2f, 0.5f, 0.1f, 0, 40.8f,0.2f, 0.5f, 0.1f, 0, 40.8f,0, 0, 0, 1, 0};// 哥特public static final float colormatrix_gete[] = {1.9f, -0.3f, -0.2f, 0, -87.0f,-0.2f, 1.7f, -0.1f, 0, -87.0f,-0.1f, -0.6f, 2.0f, 0, -87.0f,0, 0, 0, 1.0f, 0};// 淡雅public static final float colormatrix_danya[] = {0.6f, 0.3f, 0.1f, 0, 73.3f,0.2f, 0.7f, 0.1f, 0, 73.3f,0.2f, 0.3f, 0.4f, 0, 73.3f,0, 0, 0, 1.0f, 0};// 蓝调public static final float colormatrix_landiao[] = {2.1f, -1.4f, 0.6f, 0.0f, -71.0f,-0.3f, 2.0f, -0.3f, 0.0f, -71.0f,-1.1f, -0.2f, 2.6f, 0.0f, -71.0f,0.0f, 0.0f, 0.0f, 1.0f, 0.0f};// 光晕public static final float colormatrix_guangyun[] = {0.9f, 0, 0, 0, 64.9f,0, 0.9f, 0, 0, 64.9f,0, 0, 0.9f, 0, 64.9f,0, 0, 0, 1.0f, 0};// 梦幻public static final float colormatrix_menghuan[] = {0.8f, 0.3f, 0.1f, 0.0f, 46.5f,0.1f, 0.9f, 0.0f, 0.0f, 46.5f,0.1f, 0.3f, 0.7f, 0.0f, 46.5f,0.0f, 0.0f, 0.0f, 1.0f, 0.0f};// 酒红public static final float colormatrix_jiuhong[] = {1.2f, 0.0f, 0.0f, 0.0f, 0.0f,0.0f, 0.9f, 0.0f, 0.0f, 0.0f,0.0f, 0.0f, 0.8f, 0.0f, 0.0f,0, 0, 0, 1.0f, 0};// 胶片public static final float colormatrix_fanse[] = {-1.0f, 0.0f, 0.0f, 0.0f, 255.0f,0.0f, -1.0f, 0.0f, 0.0f, 255.0f,0.0f, 0.0f, -1.0f, 0.0f, 255.0f,0.0f, 0.0f, 0.0f, 1.0f, 0.0f};// 湖光掠影public static final float colormatrix_huguang[] = {0.8f, 0.0f, 0.0f, 0.0f, 0.0f,0.0f, 1.0f, 0.0f, 0.0f, 0.0f,0.0f, 0.0f, 0.9f, 0.0f, 0.0f,0, 0, 0, 1.0f, 0};// 褐片public static final float colormatrix_hepian[] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f,0.0f, 0.8f, 0.0f, 0.0f, 0.0f,0.0f, 0.0f, 0.8f, 0.0f, 0.0f,0, 0, 0, 1.0f, 0};// 复古public static final float colormatrix_fugu[] = {0.9f, 0.0f, 0.0f, 0.0f, 0.0f,0.0f, 0.8f, 0.0f, 0.0f, 0.0f,0.0f, 0.0f, 0.5f, 0.0f, 0.0f,0, 0, 0, 1.0f, 0};// 泛黄public static final float colormatrix_huan_huang[] = {1.0f, 0.0f, 0.0f, 0.0f, 0.0f,0.0f, 1.0f, 0.0f, 0.0f, 0.0f,0.0f, 0.0f, 0.5f, 0.0f, 0.0f,0, 0, 0, 1.0f, 0};// 传统public static final float colormatrix_chuan_tong[] = {1.0f, 0.0f, 0.0f, 0, -10f,0.0f, 1.0f, 0.0f, 0, -10f,0.0f, 0.0f, 1.0f, 0, -10f,0, 0, 0, 1, 0};// 胶片2public static final float colormatrix_jiao_pian[] = {0.71f, 0.2f, 0.0f, 0.0f, 60.0f,0.0f, 0.94f, 0.0f, 0.0f, 60.0f,0.0f, 0.0f, 0.62f, 0.0f, 60.0f,0, 0, 0, 1.0f, 0};// 锐色public static final float colormatrix_ruise[] = {4.8f, -1.0f, -0.1f, 0, -388.4f,-0.5f, 4.4f, -0.1f, 0, -388.4f,-0.5f, -1.0f, 5.2f, 0, -388.4f,0, 0, 0, 1.0f, 0};// 清宁public static final float colormatrix_qingning[] = {0.9f, 0, 0, 0, 0,0, 1.1f, 0, 0, 0,0, 0, 0.9f, 0, 0,0, 0, 0, 1.0f, 0};// 浪漫public static final float colormatrix_langman[] = {0.9f, 0, 0, 0, 63.0f,0, 0.9f, 0, 0, 63.0f,0, 0, 0.9f, 0, 63.0f,0, 0, 0, 1.0f, 0};// 夜色public static final float colormatrix_yese[] = {1.0f, 0.0f, 0.0f, 0.0f, -66.6f,0.0f, 1.1f, 0.0f, 0.0f, -66.6f,0.0f, 0.0f, 1.0f, 0.0f, -66.6f,0.0f, 0.0f, 0.0f, 1.0f, 0.0f};

颜色矩阵过滤器也可以如下写

ColorMatrix cm = new ColorMatrix();//亮度调节
//        cm.setScale(1,2,1,1);//饱和度调节0-无色彩, 1- 默认效果, >1饱和度加强
//        cm.setSaturation(2);//色调调节cm.setRotate(0, 45);ColorMatrixColorFilter mColorMatrixColorFilter = new ColorMatrixColorFilter(cm);mPaint.setColorFilter(mColorMatrixColorFilter);canvas.drawBitmap(bitmap, 100, 0, mPaint);

Android自定义View基础--Paint画笔设置颜色过滤器相关推荐

  1. Android自定义View之Paint绘制文字和线

    Android自定义View系列 Android自定义View注意事项 Android自定义View之图像的色彩处理 Android自定义View之Canvas Android自定义View之轻松实现 ...

  2. 自定义View之Paint(画笔)的使用

    我们在自定义View的时候总是会用到Paint画笔对象和Canvas对象,我是这么理解的,你要画一个自定义View就必须要有水彩笔和你的A4纸(当然我只是这么一说,也可以使任何纸),水彩笔就相当于Pa ...

  3. android画笔,Android自定义View系列之画笔(一)

    1.先介绍画笔的三种形式 (Style,StrokeCap,StrokeJoin)图如下 2.画笔的具体API使用 (一)图形绘制 1) 设置绘制的颜色,a代表透明度,r,g,b代表颜色值. setA ...

  4. android 自定义paint,Android自定义View中Paint、Rect、Canvas介绍(一)

    自定义View对于新手而言貌似是一个很复杂的东西.格式,各函数的意义.对于大神经常忘记各函数及一些参数的具体写法及意义,刚好在做一个风车效果,把过程及遇到的问题都写下来 1.如何自定义一个View p ...

  5. android 自定义view 加载图片,Android自定义View基础开发之图片加载进度条

    学会了Paint,Canvas的基本用法之后,我们就可以动手开始实践了,先写个简单的图片加载进度条看看. 按照惯例,先看效果图,再决定要不要往下看: 既然看到这里了,应该是想了解这个图片加载进度条了, ...

  6. Android自定义View之paint(一)

    2019独角兽企业重金招聘Python工程师标准>>> 学习自定义view,就是将view绘成自己想要的样子,自然就要有绘画的工具,那就是Paint. **1. 构造函数 ** Pa ...

  7. Android 自定义View 通过Paint和Canvas实现动态打勾对号效果

    效果图 一开始是使用的最下面一种,发现canvas绘制线,一个点一个点绘制会非常的慢,于是改进成第一个,另外把对号单独提取出来了. 设计稿 分为一个圆和两条线,中间小的方框的边长就是代码中的hookS ...

  8. Android自定义View基础——弧度和角度

    参考文章:GcsSloop 第七城市 关于安卓中角度的问题,和角度(angle)与弧度(radian)的关系 一.角度与弧度的定义 角度和弧度一样都是描述角的一种度量单位,下面是它们的定义: 角度(a ...

  9. Android自定义View(二)

    文章目录 1.构造函数 2.onMeasure() 2.1.MeasureSpec 3.onSizeChanged() 4.onLayout() 5.onDraw() 上一篇: Android自定义V ...

最新文章

  1. Creating a LINQ Enabled ASP.NET Web application template using C#.[转]
  2. 了解jvm对编程的帮助_这是您对社会责任编程的了解
  3. [VSCode]中英文界面切换
  4. 集合框架源码分析六之堆结构的实现(PriorityQueue)
  5. 服务器会自动创建cookie,网站的cookie机制是什么
  6. 利用DB Link搞定Oracle两个数据库间的表同步
  7. SnagIt的Visual Studio Team System插件
  8. 开源搜索服务 Apache Solr 出现多个高危漏洞
  9. JS中的大括号{}和中括号[]详解
  10. apple quicktime怎么在ppt中用_只添加一个色块,你也能做出高大上的PPT排版
  11. matlab 单元数组输入,Matlab 单元数组
  12. SetLocale和GetLocale函数
  13. win10计算机维护,Win10系统打开或关闭自动维护功能的方法
  14. windows和linux系统文件目录
  15. 以后你们就要给张一鸣还“花呗”了
  16. c语言51单片机湿度浇花器,基于51单片机的室内自动浇花系统的制作方法
  17. 为QNX系统增加定制命令方法
  18. HAUT 1261 地狱飞龙
  19. Bingo说说:从0开始到月入10万,告诉你一个万能赚钱公式
  20. android登陆界面ui设计,UI设计师必备技能:常用字体规范

热门文章

  1. 支付宝钱包北京试点收停车费
  2. 华为ensp-telent设置及vlan设置
  3. jQuery折叠风琴
  4. python学习之旅_第3天
  5. 微信点餐小程序项目 --- 干饭人联盟(开源、免费)
  6. 一个钓鱼木马的分析(二)
  7. connect java,用Java连接Java(Connect Java with Mysql)
  8. 智慧公厕都是用什么除臭设备去除异味的?
  9. 利用LD_PRELOAD给glibc库函数加钩子
  10. [webpack-cli] SyntaxError: Invalid regular expression: /(\p{Uppercase_Letter}+|\p{Lowercase_Letter}|