RecolorDocument
Màu
Mô tả
Chuyển mọi trang của tài liệu về một color space
Cú pháp
Delphi
Function TPDFlib.RecolorDocument(TargetSpace: Integer): Integer;Tham số
| TargetSpace | 1 grey, 2 RGB, 3 CMYK. |
|---|
Giá trị trả về
| Count | Đã chuyển đổi bao nhiêu màu trên toàn tài liệu |
|---|---|
| 0 | Không có gì cần chuyển đổi, hoặc TargetSpace nằm ngoài 1 đến 3. Trang nào màu của nó vốn đã ở không gian đích thì giữ nguyên byte gốc |
Ghi chú
Việc chuyển đổi dùng số học thiết bị thông thường chứ không qua quản lý màu: tài liệu chỉ khai báo DeviceRGB thì không mang profile nào để chuyển qua. RGB thành xám theo trọng số luminance của ITU-R BT.601, còn CMYK chuyển như mô tả tại ISO 32000-1 §8.6.4.4 - đúng điều viewer vẫn làm khi hiển thị tài liệu CMYK trên màn hình
Màu đặt qua không gian ICCBased, Separation, Indexed hoặc Pattern được giữ nguyên. Đọc thành phần của chúng mà không qua profile sẽ làm trang đổi diện mạo thay vì giữ nguyên, nên tài liệu như vậy chỉ được chuyển ở những phần nêu tên device space trực tiếp
Các ảnh mà trang vẽ cũng được chuyển đổi, khi ảnh mang tám bit mỗi thành phần, một device color space, và hoặc không nén hoặc nén Flate thuần. Ảnh JPEG hay fax phải được encode lại - đó là một thao tác khác với việc chuyển màu của nó - nên ảnh giữ nguyên byte của mình
Ảnh indexed được chuyển đổi qua colour table của nó, nên các sample giữ nguyên chỉ số vốn có. Con đường này không quan tâm sample được đóng gói hay nén thế nào, đó là lý do ảnh chụp màn hình palette hay biểu đồ vẫn chuyển được dù sample của chúng không ghi lại được
Gradient được chuyển đổi cùng với hàm đứng sau nó, nên không gian màu và các điểm dừng luôn khớp nhau. Gradient dựng từ hàm sampled hoặc PostScript giữ màu riêng của nó, các kiểu mesh shading cũng vậy vì chúng mang màu trong stream chứ không phải trong hàm
Soft mask và stencil mask được để nguyên. Cả hai được đọc như vùng phủ (coverage) chứ không phải màu, và chuyển đổi một cái sẽ khiến trang hiển thị mask như một bức ảnh
Hình học, chữ, clipping và mọi toán tử khác được ghi lại nguyên vẹn
Trang đang chọn được khôi phục khi hàm trả về
Ví dụ
// Send a mixed-colour document to a press that expects CMYK
PDF.LoadFromFile('brochure.pdf', '');
Converted := PDF.RecolorDocument(3);
PDF.SaveToFile('brochure-cmyk.pdf');