setColorFilter()滤镜

----------转载于:http://blog.sina.com.cn/s/blog_5da93c8f01012pkj.html

通过setColorFilter可以实现滤镜效果。
如:

final WallpaperManager wallpaperManager =
WallpaperManager.getInstance(this);
       
//获取壁纸
    
final Drawable wallpaperDrawable =
wallpaperManager.getDrawable();
    
//指定滤镜颜色以及混合模式
   
wallpaperDrawable.setColorFilter(Color.RED,
PorterDuff.Mode.MULTIPLY);

注意:PorterDuff.Mode枚举值:
1.PorterDuff.Mode.CLEAR

所绘制不会提交到画布上。

2.PorterDuff.Mode.SRC

显示上层绘制图片
3.PorterDuff.Mode.DST

显示下层绘制图片

4.PorterDuff.Mode.SRC_OVER

正常绘制显示,上下层绘制叠盖。

5.PorterDuff.Mode.DST_OVER

上下层都显示。下层居上显示。

6.PorterDuff.Mode.SRC_IN

取两层绘制交集。显示上层。
7.PorterDuff.Mode.DST_IN

取两层绘制交集。显示下层。

8.PorterDuff.Mode.SRC_OUT

取上层绘制非交集部分。

9.PorterDuff.Mode.DST_OUT

取下层绘制非交集部分。

10.PorterDuff.Mode.SRC_ATOP

取下层非交集部分与上层交集部分

11.PorterDuff.Mode.DST_ATOP

取上层非交集部分与下层交集部分

12.PorterDuff.Mode.XOR

//变暗
13.PorterDuff.Mode.DARKEN

//调亮
14.PorterDuff.Mode.LIGHTEN

//用于颜色滤镜
15.PorterDuff.Mode.MULTIPLY

16.PorterDuff.Mode.SCREEN

时间: 2024-08-04 12:29:58

setColorFilter()滤镜的相关文章

初识滤镜

说起滤镜,是图像处理中常用的工具,它将原图赋予各种效果,像是在原图是蒙上了一层有效果的镜子.虽然最终的效果是这样,但是在移动的设备上,其原理不可能是放两张图.而是对原图的每一个点的ARGB进行变换.所以在写代码之前,我们需要了解,图像的ARGB是如何进行变换的.Android中可以通过颜色矩阵(ColorMatrix类)进行颜色变换. 通过上面的计算方式一目了然了.图片本身的每个点的颜色是C矩阵,我们的滤镜矩阵则是A矩阵,最后经过滤镜处理得到的图上的每个点是R矩阵. 在此,列一个将图片滤为黑白的

照相机滤镜使用,优化解码和滤镜导致的预览卡屏现象

这几天看到亚瑟boy的技术连载,也试着做了下带滤镜特效的照相机,效果也出来了,但是发现添加滤镜特效后的预览窗口卡屏现象很严重,于是自己索性 试着尝试修改,在亚瑟和其他网友的代码中基本上都是对于照相机data视频流先进行解码,然后对解码出的帧Bitmap进行滤镜算法处理,这个是必走的流 程,而每一帧在处理解码和滤镜时都需要用掉大量时间,我测了下,解码需要300毫秒左右,滤镜处理需要600毫秒左右(冰冻滤镜),如此一来,处理完这两 个流程需要的时间要在900毫秒甚至更长,我们知道如果看上去比较流畅的

颜色矩阵 滤镜 ColorMatrix 色相 饱和度 亮度

颜色矩阵原理 色彩的三要素 1.色相.色相通俗的说就是"颜色",色相的改变就是颜色的改变,色相的调节伴随着红橙黄绿蓝紫的变化. 2.亮度.明度通俗的说就是"光照度",明度的改变就是光照在物体上带来的改变,明度的调节伴随着越高,光越强,越泛白(就像过曝一样,往白色上偏离):越低,光越弱,越往黑里偏 3.饱和度.饱和度通俗的说就是"色彩的纯度",饱和度的改变会影响颜色的鲜艳程度,以红色为例子,越高,越接近红色,越低则越接近灰色(黑白) 在编程中有时候

Android Camera 实时滤镜(三)

一.基于Android平台基本滤镜算法的实现 1.Android提供了改变图像数值的方法ColorMatrix,通过ColorMatrix方法可以实现基本滤镜,如黑白.灰色.泛黄等效果. 2.通过ColorMatrix改变图像数值,生成变换矩阵,利用矩阵相乘,来改变每个点的像素值. Matrix => r1 r2 r3 r4 r5 g1 g2 g3 g4 g5 b1 b2 b3 b4 b5 a1 a2 a3 a4 a5 变化以后 R'  =  R * r1  +  G * r2  +  B * 

Android:通过滤镜实现点击图片变暗效果

实现点击图片(ImageView)变暗效果,有一个较简单的方法,就是讲目标图片设置为背景图片(setBackground),再创建一个selector.xml文件,里面放置一张普通状态时的透明图片,一张点击状态下的棕色半透明图片,将其设置为ImageView的源图片.这样在点击ImageView时,源图片会变换透明度,达到变暗效果.但这种方法有个缺点:由于源图片已经被限制死了,假如我们需要自定义背景图片,将目标图片放置在背景图片上,就无法实现了.这里介绍一种通过滤镜和监听onTouchEvent

使用CSS3滤镜让图片反转颜色

CSS提供的滤镜也是一大亮点,我一直痴迷其中,有些滤镜的效果很有用,可是有些的滤镜效果可能只是为了玩玩儿,CSS常见的滤镜有这些:grayscale, blur, sepia,所有常见的过滤器.但是如何使用和转化图片呢?今天我们主要是来讲讲如何使用CSS3滤镜让图片反转颜色. CSS代码 invert滤镜就是为了设置元素的反色效果,他的值设置范围为:0-100%,100%为完全反色,0为显示正常的颜色. .normal {     filter: invert(0%); } .inverted

FFmpeg滤镜实现区域视频增强 及 D3D实现视频播放区的拉大缩小

1.区域视频增强 FFmpeg滤镜功能十分强大,用滤镜可以实现视频的区域增强功能. 用eq滤镜就可以实现亮度.对比度.饱和度等的常用视频增强功能. 推荐两篇写得不错的博文: (1)ffmpeg综合应用示例(二)——为直播流添加特效 - 张晖的专栏 - 博客频道 - CSDN.NET: (2)ffmpeg 滤镜及其效果 - 党玉涛 - 博客频道 - CSDN.NET 第(1)篇博客对于如何用代码来写滤镜讲得比较清楚,第(2)篇则列出了许多滤镜写法的例子. 参考第(1)篇博客,滤镜的代码如下: 设置

filter(滤镜) 属性

Filter 描述 none 默认值,没有效果. blur(px) 给图像设置高斯模糊."radius"一值设定高斯函数的标准差,或者是屏幕上以多少像素融在一起, 所以值越大越模糊: 如果没有设定值,则默认是0:这个参数可设置css长度值,但不接受百分比值. brightness(%) 给图片应用一种线性乘法,使其看起来更亮或更暗.如果值是0%,图像会全黑.值是100%,则图像无变化.其他的值对应线性乘数效果.值超过100%也是可以的,图像会比原来更亮.如果没有设定值,默认是1. co

iOS给图片添加滤镜&使用openGLES动态渲染图片

给图片增加滤镜有这两种方式: CoreImage / openGLES 下面先说明如何使用CoreImage给图片添加滤镜, 主要为以下步骤: #1.导入CIImage格式的原始图片 #2.创建CIFilter滤镜 #3.用CIContext将滤镜中的图片渲染出来 #4.导出渲染后的图片 参考代码: 1 //导入CIImage 2 CIImage *ciImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"hua"]]