Используется API (интерфейс программирования приложений) SANE (Scanner Access Now Easy) с его графической оболочкой XSane.
Ещё предлагается к использованию ScanTWAIN, но это я не пробовал.
Примечание: если в Windows основными промежуточными форматами сканообработки являются tiff и bmp, то для Linux таким форматом будет являет pnm (ppm — цветные, pgm — полутоновые, pbm — чёрно-белые).
2. Сканообработка.
Используется всеми любимый Scan Tailor, так как есть версия для Linux.
Я использую ST Enchanced, поэтому устанавливал его из исходников с официального сайта.
Для установки из исходников в систему пришлось добавить пакеты build-essential, cmake, libqt4-dev, zlib1g-dev, libjpeg62-dev, libpng12-dev, libtiff4-dev, libboost-all-dev и libxrender-dev.
Сборка осуществляется командой cmake . (c точкой).
Далее команда make. Потом — sudo make install
(Данный процесс инсталляции не предусматривает создания пункта меню)
Под wine также запускаются Scan Kromsator и Book Restorer.
3. Djvu-кодирование.
Происходит так:
— сжатие каждой страницы отдельно в зависимости от её содержания (автоматизируется)
— добавление текстового слоя (опционально)
— сборка из отдельных djvu-файлов одного общего (итогового)
Для работы нужны пакеты djvulibre-bin, netpbm и imagemagick
Установка:
sudo aptitude install djvulibre-bin netpbm imagemagick
Кодирование чёрно-белых изображений.
Для сжатия чёрно-белых изображений исходники надо перевести в формат pbm:
for file in *.tiff; do anytopnm $file | ppmtopgm | pgmtopbm -value 0.499 > ${file%tiff}pbm; done
Преобразование pbm-файлов в djvu-файлы:
cjb2 -dpi DPI ВХОДНОЙ_ФАЙЛ.pbm ИТОГОВЫЙ_ДОКУМЕНТ.djvu
Опция -dpi означает возможность варьировать dpi.
Кодирование изображений в оттенках серого.
Сканы нужно конвертировать в формат pgm:
anytopnm ИМЯ_ИСХОДНОГО_ФАЙЛА | ppmtopgm > ВЫХОДНОЙ_ФАЙЛ.pgm
Кодирование:
cpaldjvu -dpi DPI -colors КОЛИЧЕСТВО_ОТТЕНКОВ_СЕРОГО ВХОДНОЙ_ФАЙЛ.pgm ВЫХОДНОЙ_ФАЙЛ.djvu
Чем больше значение -colors (количество оттенков серого), тем больший объём имеет сжатая страница. Для не очень качественных сканов подойдёт значение 3 или 4 — этого вполне достаточно, чтобы получить пусть и бледноватую, но читабельную картинку.
Кодирование цветных изображений.
Обложки или иллюстрации для начала конвертируются в ppm:
convert ИСХОДНЫЙ_СКАН РЕЗУЛЬТИРУЮЩИЙ_ФАЙЛ.ppm
Кодирование в djvu:
c44 -dpi DPI ИСХОДНИК.ppm РЕЗУЛЬТАТ.djvu
Сборка итогового djvu-файла.
Выполняется такой командой:
djvm -c ВЫХОДНОЙ_ФАЙЛ.djvu *.djvu
Автор: Sergey Bolshakov