Android ColorMatrix setSaturation()是否支持大于1的值?
看看Android文档,他们说: 设置矩阵以影响颜色的饱和度。值为0时,颜色将映射为灰度。1是身份Android ColorMatrix setSaturation()是否支持大于1的值?,android,image-manipulation,colormatrix,Android,Image Manipulation,Colormatrix,看看Android文档,他们说: 设置矩阵以影响颜色的饱和度。值为0时,颜色将映射为灰度。1是身份 我正试图提高饱和度(以HSL/HSV为单位)以获得更强烈的颜色,所以我通过了1.6,看起来效果不错。我遇到过Android layout shadowRadius值小于1的设备特定问题,因此该参数是否存在此类问题并超出指定范围的危险?饱和度的范围确实在0和1之间。但是让我们看看setSaturation()方法的代码: public void setSaturation(浮动sat){ 重置();
我正试图提高饱和度(以HSL/HSV为单位)以获得更强烈的颜色,所以我通过了1.6,看起来效果不错。我遇到过Android layout shadowRadius值小于1的设备特定问题,因此该参数是否存在此类问题并超出指定范围的危险?饱和度的范围确实在0和1之间。但是让我们看看setSaturation()方法的代码:
public void setSaturation(浮动sat){
重置();
浮动[]m=mArray;
final float invSat=1-sat;//作为一个在Android之前学习过iOS的人,我不知道他们的意思是开源的……我不知道这是什么意思。谢谢你的链接和快速回复!不,不是。1在ColorMatrix中表示100%
。就像其他语言一样,包括VB.NET和C。
public void setSaturation(float sat) {
reset();
float[] m = mArray;
final float invSat = 1 - sat; //<---------invSat will be negative if sat bigger than 1
final float R = 0.213f * invSat;
final float G = 0.715f * invSat;
final float B = 0.072f * invSat;
m[0] = R + sat; m[1] = G; m[2] = B;
m[5] = R; m[6] = G + sat; m[7] = B;
m[10] = R; m[11] = G; m[12] = B + sat;
}