|
JPEG2000 Image Format Support
Vue d’ensemble
HotPDF propose désormais une prise en charge complète des formats d'image JPEG2000, y compris les fichiers JP2, J2K et JPT
JPEG2000 est une norme de compression d'image fondée sur les ondelettes qui offre une efficacité de compression supérieure et
qualité par rapport au format JPEG traditionnel
Formats pris en charge
- JP2: Format JPEG2000 Partie 1 avec structure de fichier complète
- J2K: Format de codestream JPEG2000 (données compressées brutes)
Fonctionnalités clés
- Détection automatique du format et traitement approprié
- Prise en charge de la compression sans perte et avec perte
- Prise en charge des images multicomposantes (RGB, RGBA, niveaux de gris)
- Prise en charge avancée de la profondeur de bits (8, 12, 16 bits par composant)
- Capacités de décodage progressif
- Traitement efficace en mémoire pour les grandes images
- Budgets de sortie décodée pour les codestreams hostiles ou anormalement volumineux
- Sélection automatique de la résolution du renderer à partir des pixels cibles visibles
- Reconstruction parallèle bornée des tuiles indépendantes qui se chevauchent
- Télémétrie déterministe de composition, d’annulation, de limite de workers et de pic mémoire
Exemple d'utilisation
// 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;
Implémentation technique
La prise en charge JPEG2000 est implémentée dans l'unité HPDFJpeg2000.pas, qui fournit :
- THPDFJpeg2000Decoder : Classe principale de décodage pour le traitement des images JPEG2000
- Détection du format : Identification automatique des formats JP2, J2K et JPT
- Inspection d’en-tête :
InspectHeaderFromByteArray lit dimensions, composants et SourceColorSpace sans décoder les pixels
- Traitement des flux : Prise en charge du chargement d'images à partir de fichiers et de flux
- Accès par tuiles :
LoadTileFromByteArray décode une tuile validée et rapporte son offset source et sa grille
- Sélection de résolution :
LoadRegionFromByteArray combine un rectangle source avec un facteur de réduction par ondelettes
- Décodage parallèle de tuiles :
LoadRegionFromByteArrayParallel utilise des instances de décodeur indépendantes et une composition déterministe ligne-major
- PDF chargés :
DecodeLoadedImageRegionAtResolution choisit un niveau qui ne sous-résout aucune des dimensions cibles
- Contrôles d’opération :
JPEG2000ParallelTileDecoding et JPEG2000TileWorkerLimit contrôlent l’intégration au renderer, tandis que GetLastJPEG2000ParallelDecodeStats rapporte l’ordonnancement et les estimations de budget
- Intégration OpenJPEG: Cadre de traitement avancé utilisant la bibliothèque OpenJPEG
Avantages en matière de performances
- Taux de compression supérieurs à ceux du JPEG traditionnel
- Aucun artefact de blocage aux taux de compression élevés
- Transmission et affichage progressifs
- Prise en charge de l'encodage des régions d'intérêt (ROI)
- Option de compression sans perte
- Lossless compression option
Compatibilité
La prise en charge de JPEG2000 est disponible dans les versions 32 bits et 64 bits de HotPDF et est compatible avec
toutes les versions Delphi et C++Builder prises en charge
Voir aussi
|