Jpeg to djvu
Версия от 11:44, 12 февраля 2009; Gumanoed (обсуждение | вклад) (Новая: ==Задача== Как превратить 300 отсканированных jpg картинок в целую книгу формата djvu. ==Решение== Рецепт с с...)
Задача
Как превратить 300 отсканированных jpg картинок в целую книгу формата djvu.
Решение
Рецепт с сайта http://linuxopen.ru/2008/08/13/sozdanie-dokumentov-djvu-v-linux.html дает очень хорошие результаты. при наличии 350 изображений общим обьемом в 150МБ на выходе получается djvu файл на 13 djvu.
Устанавливаем необходимые библиотеки
aptitude install djview djvulibre-bin netpbm
В папке с отсканированными изображениями создаем файл-скрипт any2djvu-bw со следующим содержимым:
#!/bin/bash
#
# any2djvu-bw
#
if [ -z `which anytopnm` -o -z `which ppmtopgm` -o -z `which pgmtopbm` -o -z `which cjb2` ]; then
usage
echo "Error: anytopnm, ppmtopgm, pgmtopbm and cjb2 are needed"
echo
exit 1
fi
shopt -s extglob
# DEFMASK="*.jpg"
DEFMASK="*.png"
DPI=300
# uncomment the following line to compile a bundled DjVu document
OUTFILE="#0-bw.djvu"
function usage() {
echo
echo "usage:"
echo
echo "$0 ["REGEXP"]"
echo " converts single pages with the default mask $DEFMASK (or REGEXP if provided)"
echo " in the current directory to single-page black and white djvu documents"
# uncomment the following line to compile a bundled DjVu document
echo " and bundles them as a djvu file $OUTFILE"
echo
}
if [ -n "$1" ]; then
MASK=$1
else
MASK=$DEFMASK
fi
for i in $MASK; do
if [ ! -e $i ]; then
usage
echo "Error: current directory must contain files with the mask $MASK"
echo
exit 1
fi
if [ ! -e $i.djvu ]; then
echo "$i"
anytopnm $i | ppmtopgm | pgmtopbm -value 0.499 > $i.pbm
# in netpbm >= 10.23 the above line can be replaced with the following:
# anytopnm $i | ppmtopgm | pamditherbw -value 0.499 > $.pbm
cjb2 -dpi $DPI $i.pbm $i.djvu
rm -f $i.pbm
fi
done
# uncomment the following line to compile a bundled DjVu document
djvm -c $OUTFILE $MASK.djvu
Отсканированные изображения должны именоваться как 0001.jpg 0002.jpg (а не 1.jpg 2.jpg, иначе 12.jpg окажется сразу перез 2.jpg и у вас нарушится последовательность страниц).
Сохраняем файл-скрипт и делаем его исполняемым:
chmod a+x any2djvu-bw
И приступаем к исполнения скрипта
./any2djvu-bw