THotPDF.RegisterLabColorSpace Method

 

THotPDF.RegisterLabColorSpace

THotPDF

 

Överst

Registrerar en PDF 1.3 CIELab-färgrymd (ISO 32000-1 8.6.5.3) under ett automatiskt genererat resursnamn (Lab1, Lab2, ...). Använd det returnerade namnet med THPDFPage.SetFillColorSpace / SetStrokeColorSpace följt av SetFillColor / SetStrokeColor med de tre L*a*b*-komponenterna

 

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

 

Beskrivning

CIELab-färgrymden beskriver färger oberoende av visnings- eller utskriftsenhet: L* uttrycker ljushet i [0..100], a* den gröna/röda axeln och b* den blå/gula axeln (vanligen [-128..127]). Konforma PDF-visare konverterar L*a*b* till enhetsfärg med den konfigurerade WhitePoint-ljuskällan. Vanliga ljuskällor:

 

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

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

 

WhitePoint Y must equal 1.0 per spec table 64; X and Z must be positive. Passing all four Range parameters as zero falls back to the spec's implicit default [-100 100 -100 100]; pass any non-zero combination to override.

 

Returvärde: ett automatiskt genererat resursnamn (Lab1, Lab2, ...). Returnerar den tomma strängen när StrictVersionLock är på och den aktiva Version är lägre än PDF 1.3 (annars höjs versionen automatiskt till 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;

 

Se även

Version, Compression, PDF Filter Support