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