CreatePdfLittleCmsColourTransform implementa IPdfColourTransform para buffers de componentes Gray, RGB, CMYK e ICCBased originais e para o auxiliar de conversão de cores do documento
Disponibilize um caminho absoluto explícito de biblioteca cuja arquitetura corresponda à do processo; a biblioteca nativa tem de expor a API cdecl do LittleCMS 2, e o helper de compilação fornecido produz esse ABI a partir do código-fonte do LittleCMS 2.19, licenciado sob MIT
Uma DLL compilada com a configuração stdcall da Microsoft é incompatível com o fornecedor Win32; as convenções de chamada não podem ser inferidas com fiabilidade a partir de nomes exportados não decorados
TryCreatePdfLittleCmsColourTransform devolve diagnósticos de dependência e deixa a transformação a nil em caso de falha, sem alterar o search path do processo
Cada chamada possui o seu contexto nativo, perfis e transformação; o fornecedor pode ser partilhado, mas o chamador tem de manter os seus buffers de amostra imutáveis durante a chamada
Os buffers contêm píxeis inteiros compactados, com 1, 3 ou 4 componentes e bytes de 8 bits ou palavras não sinalizadas de 16 bits na ordem de bytes nativa; as amostras de imagem big-endian do PDF são convertidas pelo auxiliar de documento antes de invocar este fornecedor
DeviceRGB sem perfil usa sRGB e DeviceGray sem perfil usa um perfil D50 gamma 2.2; DeviceCMYK e ICCBased exigem um perfil ICC de origem explícito, e cada espaço de cor de dados de perfil tem de corresponder à sua contagem declarada de componentes
Os alvos são DeviceGray, DeviceRGB ou DeviceCMYK com um perfil ICC correspondente; um perfil de alvo omitido é suportado apenas para as predefinições Gray e RGB do fornecedor
Default seleciona a intenção colorimétrica relativa, compensação de ponto preto, 256 MiB de bytes de amostra e 16 MiB de bytes de perfil ICC; o limite de perfil é limitado a 16 MiB
O cancelamento é verificado antes e depois da configuração nativa e entre blocos de no máximo 65,536 píxeis; a abertura nativa de perfis e um bloco individual de transformação não têm callback de cancelamento
Transformações com falha limpam o buffer de destino e geram EPdfColourBackendError; o cancelamento preserva EPdfOperationCancelled
Transformações reais do LittleCMS 2.19 e fixações de guardar/reabrir/renderizar PDF são verificadas com Delphi e FPC no Win32 e no 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 aceita um gama finito de 0.1 a 10; os dois auxiliares de perfil serializam perfis ICC nativos genuínos para incorporação ou reutilização
pwsh Native/ColourLittleCms/Build-LittleCms.ps1 -SourceDirectory C:/deps/lcms2.19 -OutputDirectory C:/deps/lcms-bin -Platform Win64
O helper exige uma instalação compatível do MinGW GCC e um checkout existente do código-fonte do LittleCMS 2.19, copia os avisos de licença nativos aplicáveis para o diretório de saída e não descarrega nem instala dependências