CreatePdfLittleCmsColourTransform implementerar IPdfColourTransform för ursprungliga gråton-, RGB-, CMYK- och ICCBased-komponentbuffertar samt hjälparen för dokumentfärgkonvertering
Ange en explicit absolut bibliotekssökväg vars arkitektur matchar processen; det nativa biblioteket måste exponera LittleCMS 2 cdecl-API:t, och den medföljande bygg-hjälparen producerar den ABI:n från LittleCMS 2.19-källan med MIT-licens
En DLL som använder Microsofts stdcall-byggkonfiguration är inkompatibel med Win32-leverantören; anropskonventioner kan inte tillförlitligt härledas från odekorerade exportnamn
TryCreatePdfLittleCmsColourTransform returnerar beroendediagnostik och lämnar transformeringen nil vid fel, utan att ändra processens sökvägar
Varje anrop äger sin nativa kontext, profiler och transformering; leverantören kan delas, men anropare måste hålla sina provbuffertar oföränderliga under anropets tid
Buffertar innehåller tätt packade hela pixlar med 1, 3 eller 4 komponenter och 8-bitars byte eller 16-bitars tecken utan tecken i nativ byteordning; PDF:s big-endian-bildprov konverteras av dokumenthjälparen innan denna leverantör anropas
Oprofileringad DeviceRGB använder sRGB och oprofileringad DeviceGray använder en D50 gamma-2.2-profil; DeviceCMYK och ICCBased kräver en explicit käll-ICC-profil, och varje profils datafärgrymd måste matcha dess deklarerade komponentantal
Mål är DeviceGray, DeviceRGB eller DeviceCMYK med en matchande ICC-profil; en utelämnad målprofil stöds endast för leverantörens gråtons- och RGB-standarder
Default väljer relativ kolorimetrisk intensitet, kompensering för svartpunkt, 256 MiB provbyte och 16 MiB ICC-profilbyte; profilgränsen är takbelagd till 16 MiB
Avbrytning kontrolleras före och efter nativt upplägg och mellan block om högst 65,536 pixlar; nativ profilöppning och ett enskilt transformeringsblock har ingen avbrottsåterkoppling
Misslyckade transformeringar tömmer målbufferten och kastar EPdfColourBackendError; avbrytning bevarar EPdfOperationCancelled
Verkliga LittleCMS 2.19-transformeringar och förankringar för PDF-sparing/återöppning/rendering är verifierade med Delphi och FPC på Win32 och 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 accepterar en ändlig gamma från 0.1 till 10; båda profilhjälparna serialiserar genuina nativa ICC-profiler för inbäddning eller återanvändning
pwsh Native/ColourLittleCms/Build-LittleCms.ps1 -SourceDirectory C:/deps/lcms2.19 -OutputDirectory C:/deps/lcms-bin -Platform Win64
Hjälparen kräver en kompatibel MinGW GCC-installation och ett befintligt utcheckat LittleCMS 2.19-källträd, kopierar tillämpliga nativa licensnotiser till utdatakatalogen och laddar ned eller installerar inga beroenden