|
JPEG2000-Bildformatunterstützung
Übersicht
HotPDF bietet nun eine umfassende Unterstützung für JPEG2000-Bildformate, einschließlich JP2-, J2K- und JPT-Dateien. JPEG2000 ist ein Wavelet-basierter Bildkomprimierungsstandard, der im Vergleich zum traditionellen JPEG-Format eine überlegene Komprimierungseffizienz und -qualität bietet
Unterstützte Formate
- JP2: JPEG2000 Part 1-Format mit vollständiger Dateistruktur
- J2K: JPEG2000-Codestream-Format (rohe komprimierte Daten)
Key Features
- Automatische Formaterkennung mit passender Verarbeitung
- Unterstützung sowohl verlustfreier als auch verlustbehafteter Komprimierung
- Unterstützung von Bildern mit mehreren Komponenten (RGB, RGBA, Graustufen)
- Erweiterte Bittiefen-Unterstützung (8, 12, 16 Bit pro Komponente)
- Direkte validierte Codestream-Tile-Dekodierung mit Tile-Grid-Metadaten
- Kombinierte Dekodierung von Quellregion und Zweierpotenz-Interessenauflösung
- Budgets für dekodierte Ausgabe bei feindlichen oder unerwartet großen Codestreams
- Automatische Renderer-Auflösungswahl anhand sichtbarer Zielpixel
- Begrenzter paralleler Wiederaufbau unabhängiger, sich überschneidender Tiles
- Deterministische Telemetrie für Komposition, Abbruch, Worker-Limit und Speicherspitzen
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
Die JPEG2000-Unterstützung ist in der Einheit HPDFJpeg2000.pas implementiert, welche Folgendes bietet:
- THPDFJpeg2000Decoder: zentrale Dekodierer-Klasse für die Verarbeitung von JPEG2000-Bildern
- Formaterkennung: automatische Identifikation der Formate JP2, J2K und JPT
- Header-Inspektion:
InspectHeaderFromByteArray liest Abmessungen, Komponenten und SourceColorSpace, ohne Pixel-Samples zu dekodieren
- Stream-Verarbeitung: Unterstützung für bildbasiertes Laden sowohl über Dateien als auch über Streams
- Tile-Zugriff:
LoadTileFromByteArray dekodiert ein validiertes Tile und meldet seinen Quell-Offset und sein Grid
- Auflösungswahl:
LoadRegionFromByteArray kombiniert ein Quellrechteck mit einem Wavelet-Reduktionsfaktor
- Paralleles Tile-Dekodieren:
LoadRegionFromByteArrayParallel verwendet unabhängige Dekodierer-Instanzen und eine deterministische Komposition in zeilenweise höherer Reihenfolge
- Geladene PDFs:
DecodeLoadedImageRegionAtResolution wählt eine Stufe, die keine der Zielabmessungen zu grob auflöst
- Bedienung der Operation:
JPEG2000ParallelTileDecoding und JPEG2000TileWorkerLimit steuern die Renderer-Integration, während GetLastJPEG2000ParallelDecodeStats Scheduling- und Budget-Schätzungen meldet
- OpenJPEG-Integration: nativ gelinkte Dekodierung auf Win32 und Win64
Performance Benefits
- Bessere Kompressionsraten als klassisches JPEG
- Keine Blockartefakte bei hohen Kompressionsraten
- Progressive Übertragung und Ansicht
- Unterstützung von Region-of-Interest-Kodierung (ROI)
- Gleichzeitiger Wiederaufbau, wenn eine sichtbare Region unabhängige Codestream-Tiles überschreitet
- Option verlustfreier Komprimierung
Compatibility
Die JPEG2000-Unterstützung ist sowohl in 32-Bit- als auch in 64-Bit-Versionen von HotPDF verfügbar und mit allen unterstützten Delphi- und C++ Builder-Versionen kompatibel
Siehe auch
|