【问题标题】:Color profiles conversion颜色配置文件转换
【发布时间】:2011-12-22 18:39:45
【问题描述】:

我有一个关于 C++ 中颜色配置文件转换的项目,其想法是使用 CIELAB 作为 RGB 和所有其他 (CMY; CMYK; HSV; HSL;...) 之间的过渡。但我有一个大问题。我到处搜索,我找不到任何公式或描述如何将 CIELAB 转换为其他(CMY;CMYK;HSV;HSL;...)只有我得到的是我在这里找到的:http://www.easyrgb.com/index.php?X=MATH&H=14#text14。有人可以帮我用公式或知道如何找到它们吗?非常感谢。 问候, 魔法:)

【问题讨论】:

  • 看起来你可以从 RGB 转到 XYZ,反之亦然。
  • 是的,没错,但我需要 CIELAB 转 CMY,CIELAB 转 CMYK,CIELAB 转 HSV 和 CIELAB 转 HSL,这意味着我不能使用 RGB 转 CMY 等。
  • 我在 c# 中也有类似的需求,只是我使用 Rgb 作为桥梁而不是 Lab。它不是 C++,但你可以在这里得到所有的转换:github.com/THEjoezack/ColorMine/tree/master/ColorMine/…

标签: cmyk hsv hsl color-management color-profile


【解决方案1】:

使用数学公式进行颜色转换会产生非常差的结果,并且没有经过认真的应用。颜色系统太复杂了,无法用简单、封闭的数学公式来捕捉它们,更不用说用线性公式来捕捉了。

只有使用颜色配置文件才能获得良好的效果。并且转换基本上涉及存储在这些文件中的样本之间的插值。

看看Little CMS。它可能会完成您需要的一切。或者,如果您的软件将在 Windows 上运行,您可以使用内置的 Windows Color System 进行转换。

【讨论】:

  • 您想说我应该使用一些额外的文件来保存有关颜色的数据,例如每种色调的值表?而不是通过代码进行比较。那不是要做很多比较吗?感谢您的建议,但我的项目(教授要求)的想法不是使用现有软件,而是制作自己的软件。在这种情况下我感到很无助,我到处寻找,我没有别的东西可以在谷歌中输入并获得新的结果,我已经搜索了很多链接、书籍和论文。
  • 这些文件称为颜色配置文件,具有标准化格式 (.icc),可从 Adob​​e 等公司或 ECI 等组织获得(通常免费)。但由于这是一个学生项目,您可能不会使用现有软件,因此您最好使用一些公式。但不要期望太多。输出颜色只会与输入颜色相近。
  • 但我找不到那些公式,你知道在哪里可以找到它们吗,CIELAB->CMY 等?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-13
相关资源
最近更新 更多