DjVu был разработан для сжатия графических файлов с потерями, и разработанн специально для хранения сканированных книг, документов, журналов и т.д. Как можно создать DjVu файлы в Ubuntu? Первой в обзоре идет утилита gscan2pdf. Программу GScan2Pdf можно назвать аналогом Fine Reader и Adobe Acrobat в Ubuntu. Утилита умеет сканировать, сохранять документы и фото, распознавать текст, импортировать и редактрировать PDF. В наличии имеются инструменты для базовой обработки графических файлов во время сканирования, такие как: повороты, негатив, кадрирование, установка порога, нерезкая маска и очистка документа. Экспортирует выходные файлы в форматы: GIF, JPEG, PNG, PNM, PS, TIFF, DjVu и текст. Установим самую свежую версию программы командами в Терминале:
sudo add-apt-repository ppa:jeffreyratcliffe/ppa
sudo apt-get update
sudo apt-get install gscan2pdf
Далее советы для любителей Терминала.
Для начала установим нужные пакеты командой в Терминале:
sudo aptitude install djvulibre-bin netpbm imagemagick
А теперь приведу примеры скриптов для обработки черно-белых, серых и цветных изображений. Перерыл много информации и остановился именно на этих способах. Если у вас присутствует много файлов, которые должны идти друг за другом в нужном порядке, то советую пронумеровать их последовательными номерами (001, 002, 003 — 026 и т.д.), и тогда можно будет применить цикл (массовую обработку). Заходим в папку с нужными изображениями и открываем ее в Терминале по этому способу.
Цикл для черно-белых изображений.
В данном случае нас интиресуют только отличного качества сканы с черно-белым режимом, т.е. белый фон и черный текст.
for file in `ls *.jpg`
do
anytopnm $file | ppmtopgm | pgmtopbm -value 0.499 > $file.pbm
cjb2 -dpi 300 $file.pbm $file.djvu
rm -f $file.pbm
done
Значение 0.499 является оптимальным для большинства случаев, но вы можете поэкспериментировать. Вместо расширения .jpg вы впишите нужное вам, например: .tiff, .png и т.д. Также можно изменить значение -dpi. Чем оно выше, тем лучше качество, но и больше размер файла. Для текстовых файлов подойдет значение от 150 до 300.
Скрипт для массовой обработки серых изображений.
Чем меньше число степени сжатия, в нашем случае 4, тем меньше размер djvu файла.
#!/bin/bash
for i in *.jpg; do
convert $i -format pgm "$i.pgm"
c44 -dpi 300 -percent 4 "$i.pgm" "$i.djvu"
# percent 4 - степень сжатия изображения
rm -f "$i.pgm"
done
Скрипт для массовой обработки цветных изображений.
for name in $(ls | grep 'jpg') ; do c44 $name -slice 100 $(echo $name | sed -r 's/(.*)\.[^\.]+/\1/').djvu ; done
Чем выше значение -slice, тем выше качество и больше размер файла.
или такую команду:
for x in *.jpg; do c44 -dpi 300 $x; done
Далее нам остается склеить все созданные djvu файлы в один.
djvm -c rezultat.djvu *.djvu
Как вы видите, мы получим многостраничный файл с именем rezultat.djvu
Теперь удалим ненужные, одиночные djvu файлы, а оставим только нужный нам, с именем rezultat.
rm -f [^rezultat]*.djvu
И напоследок могу порекомендовать установить программу DjVu Solo через Wine. Во время установки вам будет предложено скачать и установить нужные компоненты и библиотеки. Устанавливал и проверял в Убунту 12.04. Работает отлично.