我从 GUI 获取需要转换为 sRGB 的 x/y 坐标。 Y 缺失,只有“亮度”可用。由于“亮度”和 Y 是两个完全不同的东西,我尝试使用 x/y。
转换为 X/Y/Z,我们可以将 Y 值 1 用于白点坐标
local function xytoXYZ(x, y)
if y == 0 then
return 0, 0, 0
end
local z = 1.0 - x - y
local Y = 1
local X = (Y / y) * x
local Z = (Y / y) * z
return X, Y, Z
end
生成的 X/Y/Z 可以转换为 sRGB 色彩空间,并获得可接受的结果。
但是如何获取所有其他非白点的 x/y 坐标的 X/Y/Z 呢?
您需要将您提到的“亮度”转换为Y。
色品图上的
xy
坐标不定义颜色,Y值是必需的,不是可选的。虽然 1931 年色度图可能看起来像是一个 2D 表面,但事实并非如此,如果没有 Y 的第三维,您对颜色的定义就不完整。
如果您从 API/GUI 获取“亮度”或“亮度”,它应该至少可以转换为相对亮度 Y。
您能给我该值的完整描述,以及它如何呈现给您或在 API 中吗?