0

我想在 C# 中使用 .icc 配置文件“ISOnewspaper26v4.icc”!但我现在有一个问题.. 我不知道如何使用这个 ICC 配置文件将 CMYK 颜色转换为 Lab 值或将 RGB 转换为 Lab 值??!!我如何分配配置文件?

4

2 回答 2

0

在实验室空间 ICC 配置文件的帮助下,应该可以“转换”到 CIE 实验室。AGFA曾经有一个。否则,必须编写一个例程,在 ICM 之外通过 A2B0 标签手动进行转换,以获得输出配置文件。请注意,ISOnewspaperv4 配置文件很古怪。

于 2014-07-17T14:06:32.597 回答
0

据我所知,C# 和相关的库不包含任何将 CMYK 或 RGB 转换为 Lab 的函数。用于将 CMYK 转换为 RGB 的包含函数(请参阅此答案)。

Windows API 似乎具有在不同颜色系统之间进行转换的功能。它至少适用于将 RGB 转换为 CMYK(请参阅此答案)。

您可能需要以下扩展:

    [StructLayout(LayoutKind.Sequential)]
    public struct LabCOLOR
    {
        public ushort L;
        public ushort a;
        public ushort b;
        public ushort pad;
    };

    [DllImport("mscms.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
    static extern bool TranslateColors(
        IntPtr hColorTransform,
        [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2), In] RGBColor[] inputColors,
        uint nColors,
        ColorType ctInput,
        [MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 2), Out] LABColor[] outputColors,
        ColorType ctOutput);

然后您应该能够将“cmyk”替换为“lab”以从 RGB 转换为 Lab 颜色。我还没有尝试过。

于 2013-02-09T09:21:51.473 回答