PDFium Delphi Component Docs

Valfri LittleCMS 2 ICC-transformeringsleverantör

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

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

Bygg det valfria nativa biblioteket

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