PDFium Delphi Component Docs

Optionele LittleCMS 2 ICC-transformatieprovider

CreatePdfLittleCmsColourTransform implementeert IPdfColourTransform voor originele Gray-, RGB-, CMYK- en ICCBased-componentbuffers en de helper voor documentkleurconversie

Geef een expliciet absoluut bibliotheekpad mee waarvan de architectuur bij het proces past; de native bibliotheek moet de cdecl-API van LittleCMS 2 blootleggen, en de meegeleverde buildhelper produceert die ABI vanuit de MIT-gelicentieerde LittleCMS 2.19-bron

Een DLL met de stdcall-buildconfiguratie van Microsoft is incompatibel met de Win32-provider; roepconventies zijn uit ongedecoreerde geexporteerde namen niet betrouwbaar af te leiden

TryCreatePdfLittleCmsColourTransform geeft afhankelijkheidsdiagnostiek terug en laat bij mislukking de transform nil, zonder het zoekpad van het proces te wijzigen

Elke aanroep gebruikt een eigen native context, profielen en transformatie; de provider kan gedeeld worden, maar aanroepers moeten hun samplebuffers gedurende een aanroep immutable houden

Buffers bevatten strak gepakte hele pixels met 1, 3 of 4 componenten en 8-bit bytes of 16-bit unsigned words in native bytevolgorde; PDF-beeldsamples met big-endian worden door de documenthelper omgezet voordat deze provider wordt aangeroepen

Zonder profiel gebruikt DeviceRGB sRGB en gebruikt DeviceGray een D50 gamma-2.2-profiel; DeviceCMYK en ICCBased vereisen een expliciet ICC-bronprofiel, en elke kleurruimte van profieldata moet overeenkomen met het aangegeven aantal componenten

Doelen zijn DeviceGray, DeviceRGB of DeviceCMYK met een passend ICC-profiel; een weggelaten doelprofiel wordt alleen ondersteund voor de Gray- en RGB-standaardwaarden van de provider

Default kiest relatieve colorimetrische intent, black point compensation, 256 MiB aan samplebytes en 16 MiB aan ICC-profielbytes; de profiellimiet is gekapt op 16 MiB

Annulering wordt gecontroleerd vóór en na de native setup en tussen blokken van maximaal 65,536 pixels; het native openen van profielen en een individueel transformatieblok hebben geen annuleringscallback

Mislukte transformaties maken de doelbuffer leeg en genereren EPdfColourBackendError; annulering behoudt EPdfOperationCancelled

Echte LittleCMS 2.19-transformaties en PDF save/reopen/render-fixtures zijn geverifieerd met Delphi en FPC op Win32 en Win64

Public declarations

type
  EPdfColourBackendError = class(EPdfProduction);
  TPdfLittleCmsOptions = record
    RenderingIntent: Cardinal;
    BlackPointCompensation: Boolean;
    MaxSampleBytes: Integer;
    MaxProfileBytes: Integer;
    CancellationToken: IPdfCancellationToken;
    class function Default: TPdfLittleCmsOptions; static;
  end;

function CreatePdfLittleCmsColourTransform(const LibraryPath: string;
  const Options: TPdfLittleCmsOptions): IPdfColourTransform;
function TryCreatePdfLittleCmsColourTransform(const LibraryPath: string;
  const Options: TPdfLittleCmsOptions; out Transform: IPdfColourTransform;
  out ErrorText: string): Boolean;
function CreatePdfLittleCmsGrayProfile(const LibraryPath: string;
  Gamma: Double = 2.2): TBytes;
function CreatePdfLittleCmsSrgbProfile(const LibraryPath: string): TBytes;

CreatePdfLittleCmsGrayProfile accepteert een eindige gamma van 0,1 tot en met 10; beide profielhelpers serialiseren echte native ICC-profielen voor insluiting of hergebruik

Build the optional native library

pwsh Native/ColourLittleCms/Build-LittleCms.ps1 -SourceDirectory C:/deps/lcms2.19 -OutputDirectory C:/deps/lcms-bin -Platform Win64

De helper vereist een compatibele MinGW GCC-installatie en een bestaande LittleCMS 2.19-broncheckout, kopieert toepasselijke native licentiemeldingen naar de uitvoermap en downloadt of installeert geen afhankelijkheden