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