PDFium Delphi Component Docs

Valgfri LittleCMS 2-provider til ICC-transformering

CreatePdfLittleCmsColourTransform implementerer IPdfColourTransform for originale Gray-, RGB-, CMYK- og ICCBased-komponentbuffere og hjælperen til dokumentets farvekonvertering

Angiv en udtrykkelig absolut bibliotekssti med samme arkitektur som processen; biblioteket skal eksportere LittleCMS 2-API'et med cdecl, og build-hjælperen fremstiller denne ABI fra LittleCMS 2.19-kilden med MIT-licens

En DLL bygget med Microsofts stdcall-konfiguration er inkompatibel med Win32-provideren; calling conventions kan ikke udledes sikkert af udekorerede export-navne

TryCreatePdfLittleCmsColourTransform returnerer afhængighedsdiagnostik og lader transform være nil ved fejl uden at ændre processens søgesti

Hvert kald ejer sin native context, sine profiler og sin transform; provideren kan deles, men sample-buffere skal være uændrede under hele kaldet

Buffere indeholder tæt pakkede hele pixels med 1, 3 eller 4 komponenter som 8-bit bytes eller 16-bit unsigned words i native byte order; dokumenthjælperen konverterer PDF's big-endian image samples før provider-kaldet

DeviceRGB uden profil bruger sRGB, og DeviceGray uden profil bruger en D50 gamma-2.2-profil; DeviceCMYK og ICCBased kræver en eksplicit kilde-ICC-profil, hvis data color space skal passe til det angivne komponentantal

Mål er DeviceGray, DeviceRGB eller DeviceCMYK med en tilsvarende ICC-profil; en udeladt målprofil understøttes kun for providerens standarder for Gray og RGB

Default vælger relative colorimetric intent, black point compensation, 256 MiB sample-bytes og 16 MiB ICC-profilbytes; profilgrænsen er højst 16 MiB

Cancellation kontrolleres før og efter native opsætning og mellem blokke på højst 65,536 pixels; native profilåbning og den enkelte transform-blok har intet cancellation callback

Fejl rydder målbufferen og rejser EPdfColourBackendError; cancellation bevarer EPdfOperationCancelled

Reelle LittleCMS 2.19-transformeringer og PDF-fixtures med gem/genåbn/render er verificeret med Delphi og FPC på Win32 og Win64

Offentlige deklarationer

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 accepterer en endelig gamma fra 0.1 til 10; begge profilhjælpere serialiserer ægte native ICC-profiler til indlejring eller genbrug

Byg det valgfrie native bibliotek

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

Hjælperen kræver en kompatibel MinGW GCC-installation og en eksisterende LittleCMS 2.19-checkout, kopierer relevante native licensmeddelelser til outputmappen og downloader eller installerer ikke afhængigheder