我刚刚完成了将xyY颜色转换为RGB的任务。我正在使用sRGB色彩空间。
白点(D65)标有黑色像素。
我尽力剪辑色域(我生成了边界线,然后使用Photoshop删除那些边界外)但很明显白色区域太大,红色区域太小,等等。
我测试了几种不同的XYZ颜色,并使用我的程序和this website将它们转换为RGB,并且它们在误差范围内匹配(<0.1
)。
关于什么可能导致这些问题的任何想法?
修改
看来我的输出与How to tell if an xyY color lies within the CIE 1931 gamut?完全相同。
(如果我不剪辑)
这让我相信也许我没有做错任何事,但仍然没有解释为什么维基百科的色域不同。
答案 0 :(得分:2)
您应该显示代码,但我可能会猜到。
颜色是三维的。有了CIE xy图,人们只在图上添加了一些颜色。通常它们不仅仅是投影,而是更奇怪的表面。
通常你会看到两种,根据如何添加原色:加法和减法。有时候有你的情况,这是错误的。
在减色上,您只需乘以数字(颜色从0到1)。添加剂(如您所愿):添加组件,然后将值标准化为Y = 1(可能仅在Y> 1时),然后进一步缩放。因此你将保持色调,但颜色不会被剪裁(注意:缩放时,你应该考虑Y中不同重量的R,G,B)。
你的情况似乎是错误的:你添加颜色,只是你剪辑R或G或B不超过最大值(1,100或255)。但是这样:改变色调,使颜色变暗。 (也许你只是做了减色,所以乘法,但有些东西不对,在视觉上)。