首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Android ApiDemos示范解析(60):Graphics->ColorMatrix

2012-07-30 
Android ApiDemos示例解析(60):Graphics-ColorMatrixColorMatrix 可以用来变换图像中每个像素颜色,可以实

Android ApiDemos示例解析(60):Graphics->ColorMatrix

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形成动画,可以看到图像的对比度不断变化。

Android ApiDemos示范解析(60):Graphics->ColorMatrix

热点排行