我正在尝试转换这个哈希颜色代码#159424**(绿色)**到更多的黑暗和减轻编程。如何做到这一点,请帮助?
使绿色变深
toDarkColor(String hashColor){
// how to convert that hash string to make green color darker?
}
使绿色变浅
toLightColor(String hashColor){
// how to convert that hash string to make green color lighter?
}
7条答案
按热度按时间643ylb081#
适用于希望加深或加深
Color
而不是十六进制字符串的用户djmepvbi2#
无插件的颜色准确解决方案
可接受的答案会在颜色变暗时改变颜色的色调(色调更饱和)。此外,它的增亮功能会为某些颜色生成0.3的纯白色,尽管白色仅应在1的量下达到。
以下两种方法可生成看起来“更深”或“更浅”的基色阴影,而不更改色调**。
示例:将颜色变暗15%。
如果从OP要求的十六进制字符串值开始,则使用J.M. Taylor的解决方案:
注意:它适用于Flutter项目,因为它使用材质的
Color
类。eblbsuwk3#
我基于https://stackoverflow.com/a/58604669/7479173的解决方案
利用该方法,用户可以简单地:
这工作在任何颜色只要你导入扩展。
olqngx594#
您可以使用tinycolor软件包:
编辑:
您可以将
Color
转换回十六进制字符串,如下所示:或者如果需要不透明度/Alpha:
k10s72fa5#
我使用
HSLColor
的withLightness
方法来减轻颜色。cld4siwp6#
由于TinyColor的某些部分似乎已经损坏,而我只需要调亮和调暗,NearHuscarl的答案对我来说是完美的。
但是,它缺少了完整回答原始问题所必需的一个部分,即将散列颜色代码(声明为
String
)转换为Color
。为此,您可以使用以下命令:
上面的代码不是我写的,而是我从a tutorial here中学到的。
然后将其与NearHuscarl的代码结合使用,即可获得所需的效果:
h22fl7wq7#
一个内衬内置方法: