THotPDF.RegisterLabColorSpace Method

 

THotPDF.RegisterLabColorSpace

THotPDF

 

先頭

PDF 1.3 の CIELab カラースペース(ISO 32000-1 8.6.5.3)を、自動生成されたリソース名(Lab1、Lab2、...)で登録します。返された名前を THPDFPage.SetFillColorSpace / SetStrokeColorSpace に使い、続く SetFillColor / SetStrokeColor で L*a*b* の 3 コンポーネントを渡します

 

Delphi 構文:

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

 

C++ 構文:

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 印刷標準。WhitePoint = [0.9505, 1.0, 1.089]

D65  - sRGB / ディスプレイ標準。WhitePoint = [0.95047, 1.0, 1.08883]

 

仕様の Table 64 により WhitePoint の Y は 1.0 でなければならず、X と Z は正の値である必要があります。4 つの Range パラメータをすべて 0 で渡すと、仕様の暗黙デフォルト [-100 100 -100 100] にフォールバックします。上書きしたい場合は 0 でない値の組み合わせを渡してください

 

戻り値: 自動生成されたリソース名(Lab1、Lab2、...)。StrictVersionLock がオンで、有効な Version が PDF 1.3 未満の場合は空文字列を返します(それ以外の場合、バージョンは 1.3 に自動で引き上げられます)

 

コード例

// 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