THotPDF.RegisterLabColorSpace Method

 

THotPDF.RegisterLabColorSpace

THotPDF

 

Đầu trang

Đăng ký không gian màu CIELab của PDF 1.3 (ISO 32000-1 8.6.5.3) dưới một tên tài nguyên được sinh tự động (Lab1, Lab2, ...). Hãy dùng tên trả về với THPDFPage.SetFillColorSpace / SetStrokeColorSpace rồi gọi SetFillColor / SetStrokeColor và truyền ba thành phần L*a*b*

 

Cú pháp Delphi:

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

 

Cú pháp C++:

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

 

Mô tả

Không gian màu CIELab mô tả màu sắc độc lập với mọi thiết bị hiển thị hoặc in ấn: L* biểu thị độ sáng trong [0..100], a* là trục xanh lá/đỏ, b* là trục xanh dương/vàng (thường là [-128..127]). Trình xem PDF tuân thủ sẽ chuyển L*a*b* sang màu thiết bị bằng nguồn sáng WhitePoint đã cấu hình. Các nguồn sáng thường dùng:

 

D50  - tiêu chuẩn in ICC. WhitePoint = [0.9505, 1.0, 1.089]

D65  - tiêu chuẩn sRGB / hiển thị. WhitePoint = [0.95047, 1.0, 1.08883]

 

WhitePoint Y phải bằng 1.0 theo bảng 64 của đặc tả; X và Z phải dương. Nếu truyền cả bốn tham số Range bằng 0, hệ thống sẽ quay về giá trị mặc định ngầm định của đặc tả [-100 100 -100 100]; hãy truyền bất kỳ tổ hợp khác 0 nào để ghi đè

 

Giá trị trả về: một tên tài nguyên được sinh tự động (Lab1, Lab2, ...). Trả về chuỗi rỗng khi StrictVersionLock đang bật và Version hiện tại thấp hơn PDF 1.3, nếu không phiên bản sẽ tự nâng lên 1.3

 

Ví dụ mã

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

 

Xem thêm

Version, Compression, Hỗ trợ bộ lọc PDF