|
Підтримка стиснення JBIG2
Огляд
HotPDF тепер включає комплексну підтримку стиснення JBIG2 (Joint Bi-level Image Experts Group 2) JBIG2 - це стандарт стиснення з втратами або без втрат, розроблений спеціально для двоколірних (монохромних) зображень, який зазвичай використовується в документах PDF для сканованих сторінок тексту та векторної графіки
Основні функції
- Високоефективне стиснення двоколірних зображень
- Підтримка режимів стиснення як із втратами, так і без втрат
- Оптимізовано для стиснення тексту та векторної графіки
- Значне зменшення розміру файлу порівняно з традиційними методами стиснення
- Повна підтримка відповідності стандарту PDF/A
- Підтримка багатосторінкових документів із спільними словниками
Переваги стиснення
- Вища ступінь стиснення: До 3-5 разів краще стиснення, ніж Group 4 CCITT
- Розпізнавання образів: Інтелектуальне розпізнавання повторюваних шаблонів та символів
- Адаптивне стиснення: Автоматично коригує стратегію стиснення залежно від типу вмісту
- Ефективне використання пам'яті: Оптимізовано для обробки великих сканованих документів
Типові випадки використання
- Скановані текстові документи
- Технічні креслення та плани
- Форми та рахунки-фактури
- Карти та діаграми
- Документи зі змішаним вмістом (текст та графіка)
Технічна реалізація
Підтримка JBIG2 реалізована за допомогою модуля HPDFJBIG2.pas, який надає:
- THPDFJBIG2Decoder: Основний клас декодера для стиснених даних JBIG2
- Обробка потоків: Ефективна обробка потоків даних JBIG2
- Підтримка глобальних словників: Спільні словники символів для багатосторінкових документів
- Доступ до рядків розгортки: Порядковий доступ до даних для ефективної обробки пам'яті
Приклад використання
// Приклад Delphi - обробка стиснених даних JBIG2
procedure ProcessJBIG2Data;
var
PDF: THotPDF;
Decoder: THPDFJBIG2Decoder;
ImageData: TBytesArray;
ScanlineData: TBytesArray;
Row: Integer;
begin
PDF := THotPDF.Create(nil);
Decoder := THPDFJBIG2Decoder.Create;
try
PDF.BeginDoc;
PDF.AddPage;
// Завантаження стиснених зображень JBIG2
if Decoder.LoadFromByteArray(ImageData) then
begin
// Порядкова обробка для ефективного використання пам'яті
for Row := 0 to Decoder.Height - 1 do
begin
if Decoder.GetScanline(Row, ScanlineData) then
begin
// Обробка даних рядка розгортки за потреби
// Додавання до сторінки PDF
end;
end;
end;
PDF.EndDoc;
finally
Decoder.Free;
PDF.Free;
end;
end;
Довідник класів
THPDFJBIG2Decoder
- LoadFromByteArray: Завантаження даних JBIG2 з масиву байтів
- GetScanline: Отримання даних конкретного рядка розгортки
- Width/Height: Властивості розмірів зображення
Оптимізація продуктивності
- Порядкова обробка з ефективним використанням пам'яті
- Оптимізовано для обробки великих документів
- Мінімальне споживання пам'яті під час декомпресії
- Швидкі алгоритми розпізнавання шаблонів
Відповідність стандартам
- Відповідність стандарту ITU-T T.88
- Підтримка стандарту ISO/IEC 14492
- Сумісність з архівним форматом PDF/A
- Кросплатформна узгодженість
Див. також
|