Graphics->ColorMatrix

来源:互联网 发布:cms视频监控软件安装 编辑:程序博客网 时间:2024/06/06 02:35

ColorMatrix 可以用来变换图像中每个像素颜色,可以实现增强对比度,照片底片效果,或者变换不同的颜色空间(比如颜色通常以RGBA表示,但也可以使用YUV来表示),对应于三维坐标系中使用Matrix进行坐标变换,可以把颜色的RGBA当成RGBA 颜色空间中的[r,g,b,a]矢量坐标,ColorMatrix则可以用来对这个[r,g,b,a]进行坐标变换后得到一个新的颜色值,反应到图像上图像的颜色,亮度,透明度就会产生变化。

本例使用了三种不同的Color 变换Matrix: setContrast,setContrastTranslateOnly,setContrastScaleOnly,连上原图一共显示4幅图像:

ColorMatrix的基本使用方法和Matrix类似,可以支持矩阵的加减乘除。定义了ColorMatrix可以使用ColorMatrixColorFilter 来为Canvas设置需要的ColorMatrix:

setContrast(cm, contrast);paint.setColorFilter(new ColorMatrixColorFilter(cm));canvas.drawBitmap(mBitmap, x + mBitmap.getWidth() + 10, y, paint);

同样onDraw中调用invalidate ,再次触发onDraw形成动画,可以看到图像的对比度不断变化。


原创粉丝点击