5

Suppose I have serveral BMP image file, say 001.bmp, 002.bmp,..., 100.bmp. I want to convert these files to a single djvu file, whose first page is the content of 001.bmp, the second page is the content of 002.bmp...etc.

What is the best way (software) to do this task? I don't want to upload those image file to a server, since it takes too much time. On the other hand, I am not restricted to use BMP files, I can also work with PNG or JPG files.

3 Answers 3

9

Assuming you are on Linux. Install the djvulibre packages (on Debian/Ubuntu, it's apt install djvulibre-bin), cd to the path where you have your images and run the following:

for x in *.jpg; do c44 -dpi 300 $x; done
djvm -c ../result.djvu *.djvu
ddjvu -format=pdf myfile.djvu myfile.pdf

Sources:

On Windows you could follow these steps on cygwin, WSL or similar.

1
  • Note: you may want to add -percent 100 or similar option after -dpi 300, otherwise image quality in the resulting DJVU (and thus PDF) file may be quite bad.
    – Ruslan
    Nov 18, 2018 at 15:15
3

For color pages:

pages=pg1.djvu
c44 -dpi 300 pg1.jpg pg1.djvu

For black/white:

for (( i = 2; i <= $N; i++ )); do
  echo $i
  convert pg$i.jpg pg$i.pbm
  cjb2 pg$i.pbm pg$i.djvu
  pages="$pages pg$i.djvu"
done

Join all pages:

djvm -c book.djvu  $pages
2
  • Since c44 takes jpg's why do you suggest doing the conversion to pbm specifically for black and white?
    – Diagon
    Mar 20, 2017 at 3:23
  • BW uses a much less memory then color. cjb2 works only with pbm files if I proper remember...
    – gavenkoa
    Mar 20, 2017 at 8:48
0

If you want to use multiple cores while conversion, so it will be much much ... much faster :

$ CPU_N="6"; DPI="100"; for i in `ls *.JPG`  ; do echo "$i --> ${i%.JPG}.djvu" ; c44  -dpi "$DPI"   $i   ${i%.JPG}.djvu &  { while [[  $( ps aux | grep c44 | grep -v grep | wc -l )  -eq "$CPU_N" ]] ; do  sleep 1 ; done ; };      done;   { while [[  $( ps aux | grep c44 | grep -v grep | wc -l )  -ge 1 ]] ; do  echo "wait.."; sleep 1 ; done ; }; echo "done" 

CPU_N = a number of cores you want to use for conversion.
DPI = set dpi for djvu files.

Actually -dpi setting of c44 command doesnt do anything usefull, however it is another story.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .