将多个图像文件转换为单个 djvu 文件

将多个图像文件转换为单个 djvu 文件

假设我有多个 BMP 图像文件,比如 001.bmp、002.bmp、……、100.bmp。我想将这些文件转换为单个 djvu 文件,其第一页是 001.bmp 的内容,第二页是 002.bmp 的内容……等等。

完成这项任务的最佳方法(软件)是什么?我不想将这些图像文件上传到服务器,因为这需要太多时间。另一方面,我不限于使用 BMP 文件,我也可以使用 PNG 或 JPG 文件。

答案1

假设您使用的是 Linux。安装 djvulibre 包(在 Debian/Ubuntu 上,它是apt install djvulibre-bin),cd 到您有图像的路径并运行以下命令:

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

资料来源:

在 Windows 上,您可以在 cygwin、WSL 或类似程序上执行以下步骤。

答案2

对于彩色页面:

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

对于黑色/白色:

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

加入所有页面:

djvm -c book.djvu  $pages

答案3

如果您想在转换时使用多个核心,那么它会更快……更快:

$ 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 = 您想要用于转换的核心数量。DPI
= 设置 djvu 文件的 dpi。

实际上,c44 命令的 -dpi 设置没有任何用处,但这是另一回事。

相关内容