android ---图层 色彩处理

本文详细介绍了Android中Canvas的图层操作方法,包括saveLayer(), restore(), restoreToCount()等函数的使用,以及如何通过saveLayerAlpha()设置图层透明度。同时,深入解析了色彩矩阵在Android中的应用,如色调、饱和度、亮度的调整,并通过修改颜色矩阵的一维数组实现色彩效果的变换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

saveLayer() 创建一个图层

restore() 

restoreToCount() 方法将一个图层出栈,

saveLayer() ,saveLayerAlpha() 方法将一个图层入栈

入栈时,后面所用的操作都发生在这个图层上,而出栈时,  则会把图像绘制到上层的Canvas上

canvas.saveLayerAlpha(rectF,100,LAYER_FLAGS); 设置图层透明度
 super.onDraw(canvas);
        canvas.drawColor(Color.WHITE);
        paint.setColor(Color.BLUE);
        canvas.drawCircle(150,150,60,paint);
        canvas.saveLayerAlpha(rectF,100,LAYER_FLAGS); //压栈

        paint.setColor(Color.RED);
        canvas.drawCircle(200,200,50,paint);//出栈
      canvas.restore();

色彩处理

andorid 对于图片的处理,最常用的数据结构是位图 --Bitmap 他包含了一张图片的所有数据,整个图片都是有点阵和颜色值组成

点阵:  就是一个包含像素的矩阵  每一个元素对应的图片有事一个像素

颜色值 ---ARGB :分别对应相应透明度, 

一 色彩矩阵分析

色调  物体传播的颜色

饱和度 颜色的纯度  从 0 -100 来进行描述

亮度  颜色的相对明暗程度

在android 中, 系统会使用一个颜色矩阵  ColorMatrix 来处理这些色彩颜色的效果

android 中的颜色矩阵式4X5的数字矩阵

他用颜色色彩进行处理, 而对于每一个像素点, 都有一个颜色分量来保存 ARGB值

在android 中, 4X5的颜色矩阵是以 一段一维 数组的形式来存储 [a,b ,c ,d ,e ,f ,g ,h ,i ,j, k, m ,n ,o ,p ,q, r, s ,t]

则RGBA1就是一个矩阵分量  在处理图像中,使用矩阵乘法运算来处理颜色分量矩阵

矩阵运算的乘法运算公式

4*5的颜色矩阵划分方式

    第一个行的   abcde 用来决定新的颜色值  R---红色

 第二行的 fghij用来决定新的颜色值  G---绿色

第三行的 kimno用来决定新的颜色值 B----蓝色

第四行的pqrst用来决定性的颜色值  A---透明

变换颜色值的方法

1 改变偏移量

 从前面的分析中,只要将第5列的值进行修改即可,即改变颜色的偏移量, 其他的值保存初始矩阵的值

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值