假设我有一个十六进制,例如:5fc9f8
是否有一个接受“黑暗程度”(-10到10)并返回反映该值的十六进制的函数?
在黑暗中,我的意思是添加黑色/从颜色中删除黑色。
import UIKit
extension StringProtocol {
subscript(range: Range<Int>) -> SubSequence {
let start = self.index(startIndex, offsetBy: range.lowerBound, limitedBy: endIndex) ?? endIndex
return self[start..<(self.index(start, offsetBy: range.count, limitedBy: endIndex) ?? endIndex)]
}
var hexaCGFloat: CGFloat { .init(strtoul(String(self), nil, 16)) }
}
RGB(红色,绿色,蓝色,十六进制代码表示什么)与亮度等颜色转换不一致。最简单的方法是将RGB颜色转换为HSB(色调饱和度亮度)或HSL(色调饱和度亮度),将亮度或发光度调整为所需的亮度,然后将其转换回RGB。
假设您通过以下方式设置背景色:
此功能将RGB输入值分割为每种成分颜色,然后在每种成分颜色上添加“ 1”(如您所说的那样减少黑色)。然后它将重新组合为RGB字符串并返回值。
在Darken函数中将+ =更改为-=将“添加黑色”。
function Lighten(RGB)
{
var R = parseInt(RGB.substring(0, 2));
var G = parseInt(RGB.substring(2, 4));
var B = parseInt(RGB.substring(4, 6));
R += 1; G += 1; B += 1;
RGB = R.toString() + G.toString() + B.toString();
return RGB;
}