In order to convert a djvu file into a collection of jpg files two tools are needs. One is djvulibre and the other is Imagemagick. Install these first.
One way to convert would be to follow these instructions from http://en.wikisource.org/wiki/Help:DjVu_files
But if the djvu has more than 8 pages then all these pages would be included into the tiff. When Imagemagick tries to convert that tiff and splits it into jpgs then it runs out of cache with the following error.
convert: unable to extend cache file.tif': @ error/cache.c/OpenPixelCache/4175.
It could be remedied but I do not know how. The solution might to limit the memory map http://www.imagemagick.org/script/architecture.php#tera-pixel
But instead a bash script can do the conversion without going into details of the workings of Imagemagick.
But first we need to know the no. of pages in the book. Open it in evince and find it out and replace that no. with the last argument of the "seq" command in the for loop. Like if your djvu file has 300 pages then replace 512 by 300 below, save the file, make it executable with chmod 755 filename and run it with ./filename.
#!/bin/bash
# extract-jpg-from-djvu.sh by Saugata v1.0
for k in `seq 1 512`;
do
echo "extracting page"$k ":" mytif$k.tif "->" sak-$k.jpg
ddjvu -page=$k -format=tiff mybook.djvu mytif$k.tif
convert mytif$k.tif book-$k.jpg
rm mytif$k.tif
done
Tag : Extract jpg images from a djvu file , Split djvu into jpg files
One way to convert would be to follow these instructions from http://en.wikisource.org/wiki/Help:DjVu_files
To extract images from a DjVu file, you can use ddjvu
ddjvu -page=8 -format=tiff myfile.djvu myfile.tif
If you done all the pages (without -page=**
) you can split the multi-page tiff into single pages png (or any other format)
convert -limit area 1 myfile.tif myfile.png
But if the djvu has more than 8 pages then all these pages would be included into the tiff. When Imagemagick tries to convert that tiff and splits it into jpgs then it runs out of cache with the following error.
convert: unable to extend cache file.tif': @ error/cache.c/OpenPixelCache/4175.
It could be remedied but I do not know how. The solution might to limit the memory map http://www.imagemagick.org/script/architecture.php#tera-pixel
But instead a bash script can do the conversion without going into details of the workings of Imagemagick.
But first we need to know the no. of pages in the book. Open it in evince and find it out and replace that no. with the last argument of the "seq" command in the for loop. Like if your djvu file has 300 pages then replace 512 by 300 below, save the file, make it executable with chmod 755 filename and run it with ./filename.
#!/bin/bash
# extract-jpg-from-djvu.sh by Saugata v1.0
for k in `seq 1 512`;
do
echo "extracting page"$k ":" mytif$k.tif "->" sak-$k.jpg
ddjvu -page=$k -format=tiff mybook.djvu mytif$k.tif
convert mytif$k.tif book-$k.jpg
rm mytif$k.tif
done
Tag : Extract jpg images from a djvu file , Split djvu into jpg files
Comments