![如何创建一个 bash 脚本来从 pdf 文件创建图像,然后将所有 *.png 图像裁剪为 1920x1080(使用 mogrify)?](https://linux22.com/image/1173879/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%20bash%20%E8%84%9A%E6%9C%AC%E6%9D%A5%E4%BB%8E%20pdf%20%E6%96%87%E4%BB%B6%E5%88%9B%E5%BB%BA%E5%9B%BE%E5%83%8F%EF%BC%8C%E7%84%B6%E5%90%8E%E5%B0%86%E6%89%80%E6%9C%89%20*.png%20%E5%9B%BE%E5%83%8F%E8%A3%81%E5%89%AA%E4%B8%BA%201920x1080%EF%BC%88%E4%BD%BF%E7%94%A8%20mogrify%EF%BC%89%EF%BC%9F.png)
我想创建一个可以从任何地方执行的 bash 脚本,它执行以下操作:
它使用以下方法从 pdf 文件创建图像
pdftoppm
:pdftoppm 文件输入.pdf -png img -r 305.3
在所有 png 图像都存在之后。
它使用以下方法裁剪所有 png 图像 10 1920x1080
mogrify
:mogrify -裁剪 1920x1080+2+2 *.png
简而言之,我想创建一个执行以下命令的 bash 脚本:
pdftoppm inputfile.pdf -png img -r 305.3 && mogrify -crop 1920x1080+2+2 *.png
它会是这样的:
./mybashscript inputfile.pdf
运行脚本后,输出的 png 图像将被裁剪为 1920x1080。
注意:我知道我可以通过更改 pdftoppm 中的 -r 值来设置输出图像的尺寸。但由于某种原因,我不想改变它。
答案1
您可能希望将这些任务分开,先完成任务 1(从 pdf 创建图像文件),然后完成任务 2(调整图像大小)。有关如何循环和调整图像大小的示例,请参阅https://stackoverflow.com/questions/14304480/batch-resize-images-and-output-images-to-new-folder-with-imagemagick
更新:我还没有使用过pdftoppm
,所以你必须自己完善脚本的这一部分,但看起来你可能已经掌握了这一部分。以下是一些起始代码:
pdftoppm $1 -png img -r 305.3
magick mogrify -resize 1920x1080 *.png
更多信息向脚本传递参数。然后确保保存并将此脚本放入您的 PATH 中,以便您可以从任何地方执行它。请注意,更强大的脚本会进行错误检查(例如,确保您传入了输入文件)。