THotPDF.RegisterLabColorSpace Method

 

THotPDF.RegisterLabColorSpace

THotPDF

 

先頭

auto-generated resource name (Lab1Lab2、...) の下に PDF 1.3 CIELab color space (ISO 32000-1 8.6.5.3) を登録します。返された name は THPDFPage.SetFillColorSpace / SetStrokeColorSpace と、その後の 3 つの L*a*b* components を渡す 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);

 

説明

CIELab color space は display device や printing device から独立して color を記述します。L*[0..100] の lightness、a* は green/red axis、b* は blue/yellow axis (通常 [-128..127]) を表します。conforming PDF viewers は configured WhitePoint illuminant を使用して L*a*b* を device color に変換します。common illuminants:

 

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

D65 - sRGB / display standard です。WhitePoint = [0.95047, 1.0, 1.08883]

 

WhitePoint Y は spec table 64 に従い 1.0 でなければなりません。X と Z は positive でなければなりません。4 つの Range parameters をすべて zero で渡すと、spec の implicit default [-100 100 -100 100] に fallback します。override するには任意の non-zero combination を渡します

 

戻り値: auto-generated resource name (Lab1Lab2、...) です。StrictVersionLock が on で active Version が PDF 1.3 未満の場合は empty string を返します (それ以外では version は 1.3 に auto-bump されます)

 

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;

 

関連項目

Version, Compression, PDF Filter Support