假期用截屏大法复制了一本只能在线看的图书,在将图片转为PDF的时候,遇到一些问题,简单做个总结。1

改变色深

convert -monochrome -transparent white  RT_Pic02.jpg 123.png

如果只是为了删除白色,将白色 -> 透明,可用

convert -transparent white RT_Pic02.jpg 123.png

但是这样子会留下毛边,因此最好先改色深再透明化。

合并运行

for file in *.jpg; do newFile=$(echo $file | sed -r 's/\.jpg/\.png/g'); convert $file -monochrome -transparent white $newFile; done

提前将第一个文件复制为out.png

这一步是为了形成一个基板,将其他文件覆盖到out.png上。

cp $(ls | sed -n '1,1p') out.png 

合并文件

for file in *.png; do composite  $file out.png out.png ; done

根据 out.png 的信息,提取出最窄区域,并获取相应的位置信息。其中主要获取 文本区域大小、文本区域左上角坐标。

随后,根据相关信息,对原始jpg文件进行裁剪。

单页
起点:1187x85
大小:1470x2060

双页
起点:450x85
大小:2945x2060
for file in *.jpg; do convert -crop 1470x2060+1187+85 $file cut$file; done
for file in *.jpg; do convert -crop 2940x2060+453+85 $file cut$file; done

双页 一分为2


# 基于 convert *.jpg -crop 2x1@
for file in *.jpg; do newFile=$(echo $file | sed -r 's/\.jpg//g'); magick $file -crop 2x1@ split_$newFile%02d.jpg; done
# or 
for file in *.jpg; do convert $file -crop 50%x100% $file; done

删除多余的PNG文件

rm *.png

  1. 命令基本是应该是正确的,有待后续检查 ↩︎