2013-02-07 5 views

답변

0

제 생각에는 C# 및 관련 라이브러리에는 CMYK 또는 RGB를 Lab으로 변환하는 기능이 없습니다. CMYK를 RGB로 변환하는 기능을 포함합니다 (이 answer 참조).

Windows API는 다른 색상 시스템간에 변환하는 기능이있는 것 같습니다. 적어도 RGB를 CMYK로 변환하는 데 적합합니다 (이 answer 참조).

당신은 아마 다음과 같은 확장해야합니다

[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); 

는 그런 다음 랩 색을 RGB로 변환하는 "실험실"로 "CMYK"를 대체 할 수 있어야한다. 나는 그것을 시도하지 않았다.

+0

"mscms"의 특정 ICC 프로파일을 가져 와서이 색상을 변환 할 수 있는지 여부. LittleCMS에서 가능하다는 것을 알고 있지만 pInfoke 레퍼런스를 사용한 적이 한번도 없습니다. – Maxim

0

Lab 공간 ICC 프로파일의 도움으로 CIE Lab으로 "변환"할 수 있어야합니다. AGFA는 하나를 가지고있었습니다. 그렇지 않으면 ICM 외부에서 A2B0 태그를 통해 출력 프로파일을 수동으로 변환하는 루틴을 작성해야합니다. ISOnewspaperv4 프로파일은 매우 열심히 일합니다.

관련 문제