gpt4 book ai didi

android - Android ColorMatrix setSaturation() 是否支持大于 1 的值?

转载 作者:行者123 更新时间:2023-11-29 20:04:51 25 4
gpt4 key购买 nike

查看 Android 文档,ColorMatrix setSaturation() method说:

Set the matrix to affect the saturation of colors. A value of 0 maps the color to gray-scale. 1 is identity.

我正在尝试提高饱和度(就 HSL/HSV 而言)以获得更强烈的颜色,因此我通过了 1.6,它似乎有效。我遇到过 Android 布局 shadowRadius 值小于 1 的特定于设备的问题,那么此参数是否存在此类问题并超出指定范围的危险?

最佳答案

饱和度的范围确实在 0 到 1 之间。但是让我们看一下 setSaturation() 方法的代码。 (Android is open source) :

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;
}

指出了我们关心的代码部分。如您所见,该方法将接受您的输入并将其从 1 中减去。如果您输入的值大于 1,这将导致 invSat 的值为负值,并且如您所见,它也可能导致更大的问题。

关于android - Android ColorMatrix setSaturation() 是否支持大于 1 的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35821722/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com