PDFium Delphi Component Docs

Optionaler LittleCMS-2-Provider für ICC-Transformationen

CreatePdfLittleCmsColourTransform implementiert IPdfColourTransform für originale Gray-, RGB-, CMYK- und ICCBased-Komponentenpuffer und den Helper zur Dokumentfarbkonvertierung

Geben Sie einen expliziten absoluten Bibliothekspfad mit passender Prozessarchitektur an ; die Bibliothek muss die LittleCMS-2-API mit cdecl exportieren ; der mitgelieferte Build-Helper erzeugt diese ABI aus dem MIT-lizenzierten LittleCMS-2.19-Quellcode

Eine DLL mit Microsoft-stdcall-Buildkonfiguration ist mit dem Win32-Provider inkompatibel ; undekorierte Exportnamen erlauben keine verlässliche Bestimmung der Aufrufkonvention

TryCreatePdfLittleCmsColourTransform liefert Abhängigkeitsdiagnosen und lässt die Transformation bei Fehlern nil, ohne den Prozesssuchpfad zu ändern

Jeder Aufruf besitzt seinen nativen Kontext, seine Profile und Transformation ; der Provider kann geteilt werden, die Samplepuffer müssen während des Aufrufs unverändert bleiben

Puffer enthalten dicht gepackte vollständige Pixel mit 1, 3 oder 4 Komponenten als 8-Bit-Bytes oder vorzeichenlose 16-Bit-Wörter in nativer Bytefolge ; PDF-Big-Endian-Bildsamples konvertiert der Dokument-Helper vor dem Aufruf

DeviceRGB ohne Profil verwendet sRGB, DeviceGray ohne Profil ein D50-Gamma-2.2-Profil ; DeviceCMYK und ICCBased benötigen ein explizites Quell-ICC-Profil, dessen Datenfarbraum zur angegebenen Komponentenanzahl passen muss

Ziele sind DeviceGray, DeviceRGB oder DeviceCMYK mit passendem ICC-Profil ; ein fehlendes Zielprofil ist nur für die Gray- und RGB-Standardprofile des Providers zulässig

Default wählt relativ farbmetrische Wiedergabe, Schwarzpunktkompensation, 256 MiB Samplebytes und 16 MiB ICC-Profilbytes ; das Profillimit ist auf 16 MiB begrenzt

Abbruch wird vor und nach der nativen Einrichtung und zwischen Blöcken von höchstens 65,536 Pixeln geprüft ; das native Öffnen von Profilen und einzelne Transformationsblöcke haben keinen Abbruch-Callback

Fehlgeschlagene Transformationen leeren den Zielpuffer und lösen EPdfColourBackendError aus ; Abbruch behält EPdfOperationCancelled bei

Reale LittleCMS-2.19-Transformationen und PDF-Speichern/Wiederöffnen/Rendern sind mit Delphi und FPC unter Win32 und Win64 geprüft

Öffentliche Deklarationen

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 akzeptiert ein endliches Gamma von 0.1 bis 10 ; beide Profil-Helper serialisieren echte native ICC-Profile zum Einbetten oder Wiederverwenden

Optionale native Bibliothek bauen

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

Der Helper benötigt eine kompatible MinGW-GCC-Installation und einen vorhandenen LittleCMS-2.19-Checkout, kopiert die erforderlichen nativen Lizenzhinweise ins Ausgabeverzeichnis und lädt oder installiert keine Abhängigkeiten