C#,如何在 RGB 中生成仅兼容 CMYK 的颜色

发布于 2024-10-20 16:37:19 字数 308 浏览 6 评论 0原文

跟进我的第一个问题(C# 使用 ICC 配置文件将 RGB 值转换为 CMYK? )

我想知道是否/如何可以生成仅在 CMYK 中直接等效的 RGB 值?

有点像旧的 gif 格式,只有 256 种颜色的调色板,是否可以生成受调色板(这里的 CMYK 调色板)约束的 RGB 值?

谢谢

following up on my first question ( C# convert RGB value to CMYK using an ICC profile? )

I would like to know if/how it is possible to generate RGB values only that have a direct equivalent in CMYK?

Kind of like the old gif format that only has a palette of 256 colors, is it possible to generate RGB values constrained by a palette (the CMYK one here)?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

禾厶谷欠 2024-10-27 16:37:19

嗯,CMYK 基于 0-100 范围,与 RGB 不同,RGB 范围为 0-255。因此,CMYK 中只有 100 个“灰度”,而 RGB 中有 256 个“灰度”。

尝试“babelfishing”输入 RGB 值;使用您喜欢的任何转换算法将其转换为 CMYK,然后将其转换回 RGB 以获得“最接近的匹配”。只要您可以将这个最接近的匹配转换为 CMYK,然后再转换回来,您就找到了一个可以 1:1 转换为 RGB 的 RGB 值。如果颜色持续倾斜,则可能是转换出现问题,无论是哪种方式。我不知道 RGB-CMYK 转换的具体细节,并且不只有一种算法。

编辑:检查此 RGB->CMYK 转换器底部的注释: http://web.forret.com/tools/color.asp?R=85&G=85&B=68。据此,由于黑色的额外维度,CMYK 可以比 RGB 表示更多的颜色。我称之为恶作剧,但我想这又取决于您特定的转换器实现。维基百科只是说它“困难”,因为 CMYK 值比 RGB 更依赖于硬件。

Well, CMYK is based on a 0-100 scale, unlike RGB which is 0-255. So, there are only 100 "greyscales" in CMYK vs 256 in RGB.

Try "babelfishing" an input RGB value; convert it to CMYK using whatever conversion algorithm you like, then convert THAT back to RGB to get the "closest match". As long as you can then convert this closest match to CMYK and back ad nauseum, you've found an RGB value that will translate 1:1 to RGB. If the color keeps skewing, there's probably something wrong with the conversion, one way or the other. I don't know the specifics of RGB-CMYK conversion, and there isn't just one algorithm.

EDIT: Check the remark at the bottom of this RGB->CMYK converter: http://web.forret.com/tools/color.asp?R=85&G=85&B=68. According to this, CMYK can represent MORE colors than RGB because of the extra dimension of black. I call shenanigans, but I guess it again depends on your specific converter implementation. Wikipedia simply says it is "difficult" because CMYK values are more hardware-dependent than RGB.

妳是的陽光 2024-10-27 16:37:19

此问题的答案类似于 C# 使用 ICC 将 RGB 值转换为 CMYK 的答案profile?

我不知道有任何 C# API 或库可以实现此目的。但是,如果您有足够的 C/C++ 知识来构建 C# 包装器,我会看到两个选项:

两个系统都提供 API 来检查某种颜色是否可以在其他颜色空间中呈现。

The answer for this question is similar to the answer for C# convert RGB value to CMYK using an ICC profile?:

I don't know of any C# API or library that can achieve this. However, if you have enough C/C++ knowledge to build a wrapper for C#, I see two options:

Both systems offer APIs to check whether a color can be presented in the other color space.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文