Створення документів djvu в linux

Що таке DjVu?

DjVu - це формат зберігання зображень з високою роздільною здатністю. В його основі лежить алгоритм стиснення з використанням вейвлет-аналізу. Через можливість хорошого стиснення зображення при якому текст залишається читаним у DjVu немає конкурентів для зберігання відсканованих текстових документів або фотографій.







різновиди формату

Для роботи з односторінкового або бакшишниками документами, чорно-білими або кольоровими зображеннями, Фото і картинками з високою роздільною здатністю DjVu об'єднує в собі три формату стиснення: DjVuText, DjVuPhoto, і DjVuLayered.

DjVuText (Також відомий як JB2): формат стиснення чорно-білих і однотонового зображень. Використовуваний тут алгоритм дає високу ступінь стиснення за рахунок обробки спеціальним способом елементів однакової форми (наприклад букв) на сторінці. Чорно-білі багатосторінкові документи дозволом 300dpi (12 точок на міліметр) містять тільки текст зазвичай стискаються до розміру в 5-20 KB. Файли оброблені DjVuText виходять в 3-10 разів меншого розміру, ніж файли PDF або TIFF того ж якості. DjVuText також підтримує режим при якому з кожним об'єктом може бути пов'язаний певний колір. Цей режим можна використовувати для електронних документів або для зображень формату GIF.

DjVuPhoto (відомий як IW44): передовий формат стиснення для кольорових і grayscale (відтінки сірого) фотографій, малюнків та інших зображень. Він заснований на математичної теорії вейвлетів. Розмір стиснутого файлу виходить в середньому в два рази менше ніж файлу JPEG того ж якості. Основними перевагами DjVuPhoto перед JPEG є:

Формат дозволяє працювати з дуже великими зображеннями, але максимальний розмір зображення може перевищувати обсягу оперативної пам'яті комп'ютера. Ще одне обмеження DjVuPhoto - формат підтримує тільки одну колірну схему (YCrCb). Це обмеження може викликати проблеми при роботі з медичними або геологічними зображеннями. Для таких цілей більше підходить формат від LizardTech - MrSID.

Документ DjVu може містити як одну так і безліч сторінок. багатосторінкові документи бувають двох видів: пов'язані (bundled) - зберігаються в одному файлі та 'indirect' - коли окремі сторінки документа зберігаються в окремих файлах в одній директорії.

Зауваження. багатосторінкові документи, зібрані за допомогою програмного забезпечення DjVu версій 2.x і 3.x несумісні. Модулі версій 3.x коректно відображають багатосторінкові документи версії 2.x, DjVuShop 2.0 працює тільки з багатосторінковими документами версії 2.0







застосування DjVu

Коротка відповідь на питання "коли я повинен використовувати DjVu?" такий:

  • Для зберігання зображень роздільною здатністю більше 1 мільйона пікселів (відскановані документи, фотографії високої чіткості).
  • Для зберігання будь-яких зображень містять текст.
  • Для зберігання багатосторінкових документів: відскановані книги, фотоальбоми тощо

переваги DjVu

Збираємо DjVu-документ

Якщо ви до цього не працювали з форматом DjVu, потрібно встановити два пакети. Для різних дистрибутивів їх назви не повинні сильно відрізнятися. У дебіане це робиться за допомогою такої команди:

\ $ Sudo apt-get install netpbm djvulibre-bin

Тепер можна приступати власне до створення DjVu-документа. Припустимо у нас є відсканована книга - файли 010. BMP і обкладинка - 010.BMP.

Насамперед сконвертіруем все зображення в формат 'portable anymap'. Зробити це можна командою bmptopnm. перенаправивши її висновок в файл з потрібним назвою. Для інших форматів файлів є команди jpegtopnm. pngtopnm. giftopnm або anytopnm. Щоб не вводити одну і ту ж команду для кожного файлу, напишемо невеликий цикл, як вчилися в статті про bash:

\ $ For i in 010 * BMP; do bmptopnm \ $ i> \ $ pnm; done bmptopnm: Windows BMP, 2480x3507x1 bmptopnm: WRITING PBM IMAGE bmptopnm: Windows BMP, 2480x3507x8 bmptopnm: WRITING PGM IMAGE.

Після цього в поточній директорії з'являться файли з розширеннями .pnm і іменами як і у BMP-шек.

Чорно-білі зображення

Для перетворення чорно-білих зображень використовуватимемо команду cjb2. У цій команди два аргументи - файл 'portable anymap' і назву бажаного djvu-файлу. А також є кілька опцій: -dpi - дозвіл картинки, -losslevel <число> - ступінь стиснення. Є також кілька скорочень для зручності:

  • -lossless еквівалентно -losslevel 0 - взагалі не стискати (це опція за замовчуванням)
  • -clean еквівалентно -losslevel 1 - видалення найдрібніших помарок з зображення
  • -lossy еквівалентно -losslevel 100 - включає можливість кодувати деякі схожі символи однаково.

Можливі й великі значення losslevel, але це призведе до погіршення якості зображення.

Отже, обробляємо зображення знову в циклі:

\ $ For i in 010 * pnm; do cjb2 -dpi 300 -clean \ $ i \ $ djvu; done

Після цієї операції в робочій директорії з'являться файли з розширенням .djvu

кольорові зображення

Для стиснення кольорових зображень використовуватимемо утиліту С44. Кольорова у мене тільки обкладинка. У команди c44 опцій побільше, ніж у попередньої, але я буду використовувати тільки дві з них: дозвіл і '-slice' для контролю якості стиснення. В мануалі для фотографій рекомендується значення -slice 74 + 13 + 10. але я візьму трохи менші значення - чотирикольорового обкладинки буде нормально. (За детальною інформацією про параметри - дивись довідку man c44).

\ $ C44 -dpi 300 -slice 60 + 7 + 7 01.pnm 01.djvu

Збираємо багатосторінковий документ

Тепер, коли ми обробили кожну сторінку, можемо зібрати їх все в один документ. Робиться це так:

\ $ Djvm -c my-cool-book.djvu 01.djvu 010 * djvu

Опція -c ( 'create') вказує що ми хочемо зробити новий документ. Далі йде назва, яке ми хочемо дати нашій книзі, а після - файли '.djvu' з яких книга буде складатися. Важливо щоб імена файлів були в алфавітному порядку якщо ми використовуємо globbing (підстановку шаблону * замість частини імені файлу), тоді сторінки в книзі будуть йти по-порядку

Чим дивитися DjVu-документи?

додаткова інформація

Популярні статті







Схожі статті