|
JPEG2000 Image Format Support
Visão geral
O HotPDF fornece suporte abrangente aos formatos de imagem JPEG2000, incluindo arquivos JP2 e J2K. JPEG2000 é um padrão de compressão de imagens baseado em wavelets que oferece eficiência e qualidade de compressão superiores ao formato JPEG tradicional
Supported Formats
- JP2: formato JPEG2000 Part 1 com estrutura de arquivo completa
- J2K: formato de codestream JPEG2000 (dados comprimidos brutos)
Key Features
- Detecção automática de formato e processamento adequado
- Suporte a compressão tanto sem perdas quanto com perdas
- Suporte a imagens multi-componente (RGB, RGBA, Escala de cinza)
- Suporte avançado a profundidade de bits (8, 12, 16 bits por componente)
- Decodificação direta e validada de tiles de codestream com metadados de grade de tiles
- Decodificação combinada de região de origem e resolução de interesse em potências de dois
- Orçamentos de saída decodificada para codestreams hostis ou inesperadamente grandes
- Seleção automática da resolução do renderizador a partir dos pixels visíveis do alvo
- Reconstrução paralela e limitada de tiles independentes que se intersectam
- Telemetria determinística de composição, cancelamento, limite de workers e memória de pico
Usage Example
// Delphi example - Adding JPEG2000 image to PDF
procedure AddJPEG2000Image;
var
PDF: THotPDF;
begin
PDF := THotPDF.Create(nil);
try
PDF.FileName := 'output.pdf';
PDF.BeginDoc;
PDF.AddPage;
// Add JPEG2000 image - format is automatically detected
PDF.AddImage('sample.jp2', 100, 100, 200, 150);
// J2K codestream format is also supported
PDF.AddImage('sample.j2k', 100, 300, 200, 150);
PDF.EndDoc;
finally
PDF.Free;
end;
end;
Technical Implementation
O suporte a JPEG2000 é implementado pela unit HPDFJpeg2000.pas, que fornece:
- THPDFJpeg2000Decoder: classe principal de decodificação para processar imagens JPEG2000
- Format Detection: Identificação automática dos formatos JP2, J2K e JPT
- Header Inspection:
InspectHeaderFromByteArray lê dimensões, componentes e SourceColorSpace sem decodificar amostras de pixels
- Stream Processing: Suporte a carregamento de imagens tanto por arquivo quanto por stream
- Tile Access:
LoadTileFromByteArray decodifica um tile validado e informa o offset de origem e a grade dele
- Resolution Selection:
LoadRegionFromByteArray combina um retângulo de origem com um fator de redução de wavelet
- Parallel Tile Decode:
LoadRegionFromByteArrayParallel uses independent decoder instances and deterministic row-major composition
- Loaded PDFs:
DecodeLoadedImageRegionAtResolution seleciona um nível que não sub-resolva nenhuma das dimensões alvo
- Operation Controls:
JPEG2000ParallelTileDecoding e JPEG2000TileWorkerLimit controlam a integração com o renderizador, enquanto GetLastJPEG2000ParallelDecodeStats reporta estimativas de agendamento e orçamento
- OpenJPEG Integration: Decodificação vinculada nativa no Win32 e no Win64
Performance Benefits
- Razões de compressão melhores que o JPEG tradicional
- Sem artefatos de bloqueio em taxas altas de compressão
- Transmissão e visualização progressivas
- Suporte à codificação de região de interesse (ROI)
- Reconstrução concorrente quando uma região visível cruza tiles independentes do codestream
- Opção de compressão sem perdas
Compatibility
O suporte a JPEG2000 está disponível nas versões de 32 e de 64 bits do HotPDF e é compatível com todas as versões suportadas de Delphi e C++Builder
See Also
|