许虎虎 开发者工具集

CMYK 转 HSV

C: M: Y: K:

H: S: V:
CMYK 转 HSV

将 CMYK 转换为 HSV 需要经过两个步骤:首先,将 CMYK 转换为 RGB,然后再从 RGB 转换到 HSV。因为 CMYK 和 HSV 使用不同的色彩模型,所以需要通过中间步骤(RGB)进行转换。

步骤 1:从 CMYK 转换到 RGB
公式:

R = 255 × (1 - C) × (1 - K)
G = 255 × (1 - M) × (1 - K)
B = 255 × (1 - Y) × (1 - K)
其中,C、M、Y、K的值都在 0到1 之间,如果你的 CMYK 值是百分比(如 70%),需要先将它们转换为0到1之间的小数。

步骤 2:从 RGB 转换到 HSV
一旦得到了 RGB 值(R、G、B),就可以使用 RGB 到 HSV 的转换公式。HSV 由三部分组成:

H(色相):0°到360°之间,表示颜色的类型。
S(饱和度):0到1之间,表示颜色的纯度。
V(明度):0到1之间,表示颜色的亮度。
RGB到HSV的转换公式:

Max = max(R', G', B')
Min = min(R', G', B')
Delta = Max - Min
如果 Delta == 0,那么 H = 0(没有色调)。如果 Delta != 0,则计算色相(H):

H = 60 × ((G' - B') / Delta + 6),当 Max 为 R 时
H = 60 × ((B' - R') / Delta + 2),当 Max 为 G 时
H = 60 × ((R' - G') / Delta + 4),当 Max 为 B 时
S = Delta / Max(如果 Max != 0)

V = Max / 255(明度)

其中,R'、G'、B' 是RGB值(已经被标准化到0到1之间)。

示例:
假设 CMYK 值为:

C = 0.4 (40%)
M = 0.5 (50%)
Y = 0.3 (30%)
K = 0.1 (10%)
步骤 1:计算 RGB 值:
R = 255 × (1 - 0.4) × (1 - 0.1) = 255 × 0.6 × 0.9 = 137.7 ≈ 138
G = 255 × (1 - 0.5) × (1 - 0.1) = 255 × 0.5 × 0.9 = 114.75 ≈ 115
B = 255 × (1 - 0.3) × (1 - 0.1) = 255 × 0.7 × 0.9 = 160.65 ≈ 161
RGB值为 (138, 115, 161)。

步骤 2:计算 HSV 值:
R' = 138 / 255 = 0.541
G' = 115 / 255 = 0.451
B' = 161 / 255 = 0.631
Max = max(0.541, 0.451, 0.631) = 0.631
Min = min(0.541, 0.451, 0.631) = 0.451
Delta = Max - Min = 0.631 - 0.451 = 0.18
然后,计算色相(H):

H = 60 × ((G' - B') / Delta + 6) = 60 × ((0.451 - 0.631) / 0.18 + 6)
H = 60 × (-0.18 / 0.18 + 6) = 60 × (-1 + 6) = 60 × 5 = 300°
饱和度(S):

S = Delta / Max = 0.18 / 0.631 = 0.285
明度(V):

V = Max = 0.631
因此,HSV 值为:

H = 300°
S = 0.285
V = 0.631
小结:
CMYK 到 RGB 的转换首先使用公式计算出 RGB 值。
然后,通过 RGB 到 HSV 的转换公式来计算色相(H)、饱和度(S)和明度(V)。
这些转换公式适用于 CMYK 和 HSV 的数值范围,并且提供了一个中间的 RGB 模型作为桥梁。