|
THotPDF.RegisterSampledFunction
|
Topo |
|
Declara um objeto de fluxo indireto Function Type 0 (Sampled) PDF 1.3+ (ISO 32000-1 7.10.2). Funções sampled expressam um mapeamento arbitrário de entrada para saída como uma grade N-dimensional regular de amostras de saída M-dimensionais; o renderizador interpola linearmente entre pontos da grade para avaliar entradas intermediárias. Utilize isso quando a infraestrutura de perfil ICC for excessiva, mas uma tabela de consulta ajustada manualmente for desejada: curvas de tom para /TransferFunction (ExtGState /TR), transformações sampled de tinta para /Separation ou /DeviceN (alternativa aos caminhos lineares Type 2 / aritméticos Type 4), curvas de limiar de halftone ou qualquer outro construto PDF que aceite um dicionário Function
Delphi syntax: function RegisterSampledFunction(const Domain: array of Single; const Range: array of Single; const Size: array of Integer; BitsPerSample: Integer; const Samples: array of byte; Order: Integer = 1): THPDFStreamObject;
C++ syntax: THPDFStreamObject* RegisterSampledFunction(const float* Domain, int DomainCount, const float* Range, int RangeCount, const int* Size, int SizeCount, int BitsPerSample, const unsigned char* Samples, int SamplesCount, int Order = 1);
Descrição The function is emitted as an indirect stream with Order - optional, default 1. Accepts 1 (linear interpolation, PDF 1.7 default) or 3 (cubic-spline interpolation) per PDF 1.7 Table 38. Cubic gives smoother transitions at low sample-grid densities (e.g. 17-point ICC tone curves) but some older mobile readers silently fall back to linear when they encounter an Order value they do not implement. Available since HotPDF v2.54.0. For ASCII-input use cases - the typical authoring path - a single 1-input / M-output function with
Domain - 2N Single values, ordered Range - 2M valores Single com a mesma forma das M dimensões de saída; amostras de saída são limitadas a esse intervalo após a decodificação Size - N inteiros que informam a contagem de pontos da grade em cada eixo de entrada. Length(Size) deve ser igual a N. O total de pontos da grade é o produto de todas as entradas de Size BitsPerSample - one of 1, 2, 4, 8, 12, 16, 24, or 32 per PDF 1.7 Table 38. Samples - fluxo bruto de amostras empacotadas em bits. Length deve ter pelo menos ceil(GridPoints * M * BitsPerSample / 8) bytes. O HotPDF copia os bytes fornecidos literalmente para o objeto de fluxo indireto; a correção do empacotamento de bits é responsabilidade do chamador
Valor de retorno: o THPDFStreamObject indireto, para que os chamadores possam anexá-lo onde um dicionário Function for esperado (normalmente passando sua referência indireta para outro dicionário via AddValue ou para um construtor de shading / separation). O objeto pertence à lista IndirectObjects do documento e é liberado no fim do documento. Retorna nil quando StrictVersionLock está ativo e a Version ativa é inferior a PDF 1.3 (caso contrário a versão do documento é elevada automaticamente para 1.3)
Code Example
Consulte também RegisterAxialGradient, RegisterDeviceN, RegisterSeparation, Version, PDF Filter Support
|