将 RGB 颜色转换为 CMYK 颜色?
我正在寻找一种将 RGB 颜色转换为 CMYK 颜色的算法。 Photoshop 正在执行以下转换:
R = 220 G = 233 B = 174
C = 15 中号=0 Y = 40 K = 0
I'm looking for an algorithm to convert an RGB color to CMYK. Photoshop is performing the conversion below:
R = 220
G = 233
B = 174
C = 15
M = 0
Y = 40
K = 0
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
从 RGB 到 CMYK 的转换取决于用于铺设 CMYK 墨水的物理设备/过程。这些在软件中表示为颜色配置文件。 ICC 和 ICM 物理设备的颜色配置文件决定最终的颜色。
如果您不关心物理设备上的真实表示,请使用其他帖子中的直接转换公式。
但是,如果您担心这方面,那么您需要使用 Windows 颜色管理 API 或类似 LittleCMS 为您执行颜色转换(因为它们应用转换期间正确的颜色配置文件)。
The conversion from RGB to CMYK is dependent on the physical device/process being used to lay down the CMYK ink. These are represented in software as Color Profiles. ICC and ICM color profiles of physical devices determine the resulting colors.
If you are not concerned with true representation on a physical device then use the direct conversion formulas in other posts.
If, however, you are concerned with this aspect, then you need to use a either the Windows Color Management APIs or something like LittleCMS to do the color conversions for you (as they apply the proper color profile during the conversion).
查看此链接:http://www.codeproject.com/KB/applications/xcmyk。 .aspx.它给出了这个公式。
Check out this link: http://www.codeproject.com/KB/applications/xcmyk.aspx. It gives this formula.
如果您想要好的结果,您需要应用颜色配置文件。在 .NET 中,您可以这样做(假设原始 CMYK 分量在 0 到 255 之间的范围内):
请注意,使用了来自两个不同命名空间的两个不同颜色类。您可能需要添加PresentationCore DLL 作为参考。
所需的颜色配置文件可以从 eci.org 的下载部分下载。它是包含多个配置文件的更大 ZIP 文件的一部分。他们明确建议使用 ISO Coated v2 300% (ECI) 配置文件。
如果您需要将完整图像从 CMYK 转换为 RGB,则同一命名空间中有专门的类。
If you want good result, you need to apply a color profile. In .NET, you can do it like that (assuming the the original CMYK components are in the range between 0 and 255):
Note that two different Color classes from two different namespaces are used. And you probably need to add the PresentationCore DLL as a reference.
The required color profile can be downloaded from the downloads section of eci.org. It's part of a bigger ZIP file containing several profiles. They explicitly recommend to use the ISO Coated v2 300% (ECI) profile.
If you need to convert a complete image from CMYK to RGB, there are special classes for this in the same namespace.
我的 C# CMYK <-> 之间转换的完整示例十六进制:
My complete example for C# conversion between CMYK <-> HEX:
我同意前面的答案,但我想说的是:
如果 r = g = b = 0 就可以。
I agree with the previous answers, but I want to say that:
It can be if r = g = b = 0.
为了将 RGB 转换为 CMYK,我编写了一个名为 ColorHelper 的库。
该库中的转换算法:
链接 - https://github .com/iamartyom/ColorHelper/blob/master/ColorHelper/Converter/ColorConverter.cs
For convert RGB to CMYK, I've written a library called ColorHelper.
The conversion algorithm in this library:
Link - https://github.com/iamartyom/ColorHelper/blob/master/ColorHelper/Converter/ColorConverter.cs