. CIC에서 .icc 프로파일 "ISOnewspaper26v4.icc"를 사용하고 싶습니다! 하지만 지금 문제가 있습니다.이 ICC 프로파일을 사용하여 CMYK 색상을 Lab 값 또는 RGB 값을 Lab 값으로 변환하는 방법을 모르겠습니다. 프로필을 어떻게 할당 할 수 있습니까 ??C# ICC 프로파일을 사용하여 CYLAB 또는 Cielab로 CMYK로 변환
0
A
답변
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
Lab 공간 ICC 프로파일의 도움으로 CIE Lab으로 "변환"할 수 있어야합니다. AGFA는 하나를 가지고있었습니다. 그렇지 않으면 ICM 외부에서 A2B0 태그를 통해 출력 프로파일을 수동으로 변환하는 루틴을 작성해야합니다. ISOnewspaperv4 프로파일은 매우 열심히 일합니다.
"mscms"의 특정 ICC 프로파일을 가져 와서이 색상을 변환 할 수 있는지 여부. LittleCMS에서 가능하다는 것을 알고 있지만 pInfoke 레퍼런스를 사용한 적이 한번도 없습니다. – Maxim