|
LZW Compression Support
Yleiskatsaus
HotPDF sisältää nyt kattavan LZW-pakkaustuen (Lempel-Ziv-Welch) PDF-virroille. LZW on häviötön tiedonpakkausalgoritmi, joka on erityisen tehokas tekstille ja yksinkertaiselle grafiikalle ja jota käytetään yleisesti PDF-dokumenteissa sisältövirran pakkaukseen
Key Features
- Täysi LZW-purkutuki PDF-virroille
- Konfiguroitava prediktori-tuki parannetulle pakkaukselle
- Useita täyttöjärjestyksen vaihtoehtoja (ylhäältä alas, alhaalta ylös)
- Aikainen koodimuutostuki yhteensopivuutta varten
- Memory-efficient stream processing
- PDF-parametrien integrointi (Predictor, Colors, BitsPerComponent, Columns)
Technical Implementation
LZW-pakkaustuki on toteutettu yksikössä HPDFLZW.pas, joka tarjoaa
- TPDFLZWDecompressor: Main decompression class
- TPDFLZWParms: Parametrirakenne PDF-kohtaisia asetuksia varten
- TPDFLZWFillOrder: Luettelotyyppi bittijärjestyksen käsittelyä varten
Class Reference
TPDFLZWDecompressor
Pääluokka LZW-purkuoperaatioille
Properties:
- FillOrder: Määrittää bittijärjestyksen (foBottom, foTop)
- EarlyChange: Ohjaa varhaisia koodikoon muutoksia
- InitialCodeSize: Alkuperäinen koodikoko pakkauksen purkamista varten
Methods:
- Decompress(Input: AnsiString): AnsiString - Basic decompression
- Decompress(Input: AnsiString; Parms: TPDFLZWParms): AnsiString - Pakkauksen purkaminen PDF-parametreilla
Usage Examples
Basic LZW Decompression
// Delphi example - Basic LZW decompression
procedure DecompressLZWData;
var
Decompressor: TPDFLZWDecompressor;
CompressedData: AnsiString;
DecompressedData: AnsiString;
begin
Decompressor := TPDFLZWDecompressor.Create;
try
// Configure decompressor
Decompressor.FillOrder := foTop;
Decompressor.EarlyChange := True;
Decompressor.InitialCodeSize := 9;
// Decompress data
DecompressedData := Decompressor.Decompress(CompressedData);
// Use decompressed data
ProcessDecompressedData(DecompressedData);
finally
Decompressor.Free;
end;
end;
Edistynyt LZW-pakkauksen purku PDF-parametreilla
// Delphi example - Advanced LZW decompression with PDF parameters
procedure DecompressLZWWithParms;
var
Decompressor: TPDFLZWDecompressor;
CompressedData: AnsiString;
DecompressedData: AnsiString;
Parms: TPDFLZWParms;
begin
Decompressor := TPDFLZWDecompressor.Create;
try
// Configure PDF parameters
Parms.Predictor := 2; // Horizontal differencing predictor
Parms.Colors := 3; // RGB color space
Parms.BitsPerComponent := 8; // 8 bits per component
Parms.Columns := 100; // Image width in pixels
Parms.ExpandedTo8Bit := True; // Expand to 8-bit components
Parms.ColorSpace := 'DeviceRGB';
// Decompress with parameters
DecompressedData := Decompressor.Decompress(CompressedData, Parms);
// Process the decompressed image data
ProcessImageData(DecompressedData, Parms);
finally
Decompressor.Free;
end;
end;
PDF Parameter Support
TPDFLZWParms Structure
- Predictor: Predictor function (0=none, 2=horizontal differencing)
- Värit: Värikomponenttien määrä (1=harmaasävy, 3=RGB, 4=CMYK)
- BitsPerComponent: Bits per color component (1, 2, 4, 8, 16)
- Sarakkeet: Näytteiden määrä riviä kohden
- ExpandedTo8Bit: Laajennetaanko 8-bittisiksi komponenteiksi
- ColorSpace: Color space identifier
Algorithm Details
LZW-toteutus sisältää:
- Sanakirjapohjainen pakkaus: Rakentaa ja ylläpitää dynaamista sanakirjaa
- Muuttuva koodipituus: Tukee koodin pituuksia 9–12 bittiä
- Clear Code Handling: Proper handling of clear and end-of-information codes
- Merkkijonotaulukon hallinta: Tehokas merkkijonotaulukko kuviontunnistusta varten
Performance Characteristics
- Muistitehokas: Optimoitu suurille tietovirroille
- Nopea pakkauksen purku: Erittäin optimoidut pakkauksen purkualgoritmit
- Ennustettava suorituskyky: Johdonmukainen suorituskyky eri tietotyypeillä
- Pieni muistinkäyttö: Minimaalinen muistin yleiskustannus käsittelyn aikana
Common Use Cases
- PDF content stream decompression
- Kuvatietojen purkaminen PDF-tiedostoissa
- Text stream decompression
- Form data decompression
- PostScript stream decompression
Error Handling
LZW-pakkauksen purkaja sisältää vankkarakenteisen virheenkasittelyn seuraaville kohteille
- Invalid code sequences
- Corrupted data streams
- Memory allocation failures
- Dictionary overflow conditions
Standards Compliance
- PDF 1.2+ LZWDecode filter compliance
- PostScript Level 2 LZW compatibility
- TIFF LZW compression compatibility
- Yhteensopivuus Adobe LZW -toteutuksen kanssa
See Also
|