如何将CIE颜色转换为以下格式x=0.615,y=0.346,5.6 cd/m2;转换为HEX或RGB

  • 本文关键字:转换 cd m2 RGB HEX 格式 CIE 颜色 colors
  • 更新时间 :
  • 英文 :


Iv'e从xyz中找到了转换器,并发布了关于这些帖子的帖子。但对于彩色的"cd/m2"成分找不到很好的参考

您在问题中给出的坐标是CIE xyY(小x,小y,大y(,而不是CIE XYZ三刺激值(大x,大y,大Z(。两者之间的共同点是亮度Y。CIE xyY是从CIE XYZ沿着亮度Y轴的透视投影,以分离亮度和色度信息。

要从CIE xyY转换为HEX或RGB(sRGB(,您需要遵循以下路径:

CIE xyY->CIE XYZ->RGB->HEX

使用颜色,这种转换将表示如下:

import colour
xyY = [0.615, 0.346, 5.6]
XYZ = colour.xyY_to_XYZ(xyY)
RGB = colour.XYZ_to_sRGB(XYZ, apply_cctf_encoding=False)
print(RGB)
RGB_n = colour.utilities.normalise_maximum(RGB)
print(RGB_n)
print(colour.notation.RGB_to_HEX(colour.cctf_encoding(RGB_n)))
[ 23.33310243   0.88648      0.07921734]
[ 1.          0.03799238  0.00339506]
#fe360b

或使用最新开发的分支的自动颜色转换图

import colour
xyY = [0.615, 0.346, 5.6]
print(colour.convert(xyY, 'CIE xyY', 'Hexadecimal'))
.../colour/colour/utilities/verbose.py:237: ColourUsageWarning: "RGB" array contains values over 1 and will be normalised, unpredictable results may occur!
warn(*args, **kwargs)
#fe360b

请注意,由于您的颜色是高动态范围(HDR(,即Y=5.6,因此在从RGB转换为十六进制之前,如果不进行归一化处理,就无法将其转换为十六十进制表示。这里对颜色进行了归一化,使最大RGB值为1,但也值得考虑的是,您使用的是sRGB颜色,并将Y除以80,这是典型的sRGB显示峰值亮度。

最新更新