|
Supporto formato immagine JPEG2000
Panoramica
HotPDF fornisce supporto completo ai formati immagine JPEG2000, inclusi i file JP2 e J2K. JPEG2000 è uno standard di compressione immagini basato su wavelet che offre efficienza di compressione e qualità superiori rispetto al formato JPEG tradizionale
Formati supportati
- JP2: Formato JPEG2000 Part 1 con struttura file completa
- J2K: JPEG2000 codestream format (raw compressed data)
Caratteristiche principali
- Rilevamento automatico del formato ed elaborazione adeguata
- Supporto sia della compressione senza perdita sia con perdita
- Multi-component image support (RGB, RGBA, Grayscale)
- Advanced bit-depth support (8, 12, 16 bits per component)
- Decodifica diretta validata di tile del codestream con metadati della griglia di tile
- Decodifica combinata per regione sorgente e risoluzione d'interesse potenza di due
- Budget dell'output decodificato per codestream ostili o inspiegabilmente grandi
- Selezione automatica della risoluzione del renderer dai pixel visibili del target
- Ricostruzione parallela limitata di tile indipendenti intersecanti
- Telemetria deterministica di composizione, annullamento, limite worker e memoria di picco
Esempio d'uso
// 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;
Implementazione tecnica
Il supporto JPEG2000 è implementato tramite l'unità HPDFJpeg2000.pas, che fornisce:
- THPDFJpeg2000Decoder: Classe decoder principale per elaborare immagini JPEG2000
- Rilevamento del formato: Identificazione automatica dei formati JP2, J2K e JPT
- Ispezione dell'header:
InspectHeaderFromByteArray legge dimensioni, componenti e SourceColorSpace senza decodificare i campioni di pixel
- Elaborazione degli stream: Supporto del caricamento immagini sia da file sia da stream
- Accesso ai tile:
LoadTileFromByteArray decodifica un tile validato e riporta il suo offset sorgente e la griglia
- Selezione della risoluzione:
LoadRegionFromByteArray combina un rettangolo sorgente con un fattore di riduzione wavelet
- Decodifica parallela dei tile:
LoadRegionFromByteArrayParallel uses independent decoder instances and deterministic row-major composition
- PDF caricati:
DecodeLoadedImageRegionAtResolution seleziona un livello che non sotto-risolve nessuna delle due dimensioni target
- Controlli operativi:
JPEG2000ParallelTileDecoding e JPEG2000TileWorkerLimit controllano l'integrazione col renderer, mentre GetLastJPEG2000ParallelDecodeStats riporta stime di scheduling e budget
- Integrazione OpenJPEG: Decodifica collegata nativa su Win32 e Win64
Vantaggi di prestazione
- Rapporti di compressione migliori del JPEG tradizionale
- Nessun artefatto a blocchi ad alti tassi di compressione
- Trasmissione e visualizzazione progressive
- Region of interest (ROI) encoding support
- Ricostruzione concorrente quando una regione visibile attraversa tile di codestream indipendenti
- Opzione di compressione senza perdita
Compatibility
Il supporto JPEG2000 è disponibile sia nelle versioni a 32 bit sia in quelle a 64 bit di HotPDF ed è compatibile con tutte le versioni supportate di Delphi e C++Builder
Vedi anche:
|