THotPDF.RegisterLabColorSpace 메서드

 

THotPDF.RegisterLabColorSpace

THotPDF

 

Top

자동 생성된 리소스 이름(Lab1, Lab2, ...)으로 PDF 1.3 CIELab 색 공간(ISO 32000-1 8.6.5.3)을 등록합니다. 반환된 이름을 THPDFPage.SetFillColorSpace / SetStrokeColorSpace에 사용한 다음, L*a*b* 세 성분을 전달해 SetFillColor / SetStrokeColor를 호출하세요.

 

Delphi syntax:

function RegisterLabColorSpace(WhitePointX, WhitePointY, WhitePointZ: Single; RangeAMin, RangeAMax, RangeBMin, RangeBMax: Single): AnsiString;

 

C++ syntax:

AnsiString RegisterLabColorSpace(float WhitePointX, float WhitePointY, float WhitePointZ, float RangeAMin, float RangeAMax, float RangeBMin, float RangeBMax);

 

Description

CIELab 색 공간은 디스플레이나 인쇄 장치와 무관하게 색을 기술합니다. L*은 [0..100] 범위의 밝기, a*는 녹색/적색 축, b*는 청색/황색 축(보통 [-128..127])을 나타냅니다. 규격을 준수하는 PDF 뷰어는 설정된 WhitePoint 광원을 사용해 L*a*b*를 장치 색으로 변환합니다. 흔히 쓰는 광원은 다음과 같습니다.

 

D50  - ICC print standard. WhitePoint = [0.9505, 1.0, 1.089].

D65  - sRGB / display standard. WhitePoint = [0.95047, 1.0, 1.08883].

 

WhitePoint의 Y는 사양의 표 64에 따라 1.0이어야 하며, X와 Z는 양수여야 합니다. Range 파라미터 네 개를 모두 0으로 전달하면 사양의 암묵적 기본값 [-100 100 -100 100]으로 폴백하고, 0이 아닌 조합을 전달하면 이를 덮어씁니다.

 

반환 값: 자동 생성된 리소스 이름(Lab1, Lab2, ...)입니다. StrictVersionLock이 켜져 있고 현재 Version이 PDF 1.3 미만이면 빈 문자열을 반환합니다(그렇지 않으면 버전이 1.3으로 자동 상향됩니다).

 

Code Example

// Register a D50 Lab space for print, paint a magenta swatch
var
  CSName: AnsiString;
begin
  HPDF.Version := pdf14;
  HPDF.BeginDoc;
  CSName := HPDF.RegisterLabColorSpace(
    0.9505, 1.0, 1.089,        // D50 WhitePoint
    -128, 127, -128, 127);     // standard a* and b* range
  HPDF.CurrentPage.SetFillColorSpace(CSName);
  HPDF.CurrentPage.SetFillColor([50.0, 60.0, -50.0]);  // L* a* b*
  HPDF.CurrentPage.Rectangle(60, 60, 200, 100);
  HPDF.CurrentPage.Fill;
  HPDF.EndDoc;
end;

 

See Also

Version, Compression, PDF Filter Support