给出颜色的十六进制,如何使该颜色更浅或更深? [重复]

问题描述 投票:2回答:4

假设我有一个十六进制,例如:5fc9f8

是否有一个接受“黑暗程度”(-10到10)并返回反映该值的十六进制的函数?

在黑暗中,我的意思是添加黑色/从颜色中删除黑色。

ios swift colors hex
4个回答
3
投票
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)) }
}

1
投票

RGB(红色,绿色,蓝色,十六进制代码表示什么)与亮度等颜色转换不一致。最简单的方法是将RGB颜色转换为HSB(色调饱和度亮度)或HSL(色调饱和度亮度),将亮度或发光度调整为所需的亮度,然后将其转换回RGB。


0
投票

假设您通过以下方式设置背景色:


0
投票

此功能将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;
}
© www.soinside.com 2019 - 2024. All rights reserved.