使用Ubuntu 14.04 Linux,我在.jpg
,Capture 01.jpg
等文件夹中有一个Capture 02.jpg
图像列表,我想创建一个创建一个命令行的命令行具有A4大小的页面的多页文档,其中每个页面按照给定的顺序包含2个图像,文件的名称作为标题,并且页面包含页脚,例如' Page 1 of 41'。参见,例如:
------
Capture 01.jpg
[image]
Capture 02.jpg
[image]
Page 1 of 41
------
Capture 03.jpg
[image]
Capture 04.jpg
[image]
Page 2 of 41
------
...
图像大小相同,大约1600x1200像素。
了解ImageMagick的工作原理,我认为这将涉及某种collate
或montage
命令,但我不确定如何使其适合A4大小的页面以及如何格式化它们印刷(pdf?)。
有什么建议吗?
编辑:我发现了一个与添加图片文件名有关的问题:
Overlaying an image's filename using ImageMagick (or similar)
答案 0 :(得分:1)
在fmw42
的请求中,这是我的版本,我认为这是一个改进,因为可以更好地处理“困难”的文件名。
首先进行一些设置 创建目录,下载图像,复制x6并给出新的古怪名称。
#!/bin/bash
cd ~/Desktop
mkdir testimagesSO
cd testimagesSO
wget "https://i.imgur.com/GeaEv21.png"
mv *.png testimage.png
Names=("Drøbaksundet\n img #1*" "Drøbaksundet\n img #2*" "Drøbaksundet\n img #3*" \
"Drøbaksundet\n img #4*" "Drøbaksundet\n img #5*" "Drøbaksundet\n img #6*" )
echo "${#Names[@]}"
for f in "${Names[@]}"
do
cp testimage.png "$f".png
done
rm testimage.png
该命令的内容与fmw42
非常相似,除了它完全基于数组。我还介绍了使用bc
。
arr=(*)
num=${#arr[*]}
numm1=$((num-1))
npp=2
numpages=$((($num+$npp-1)/$npp))
echo "numpages=$numpages"
pagenum=1
(
for ((i=0; i<numm1; i=i+2)); do
j=$((i+1))
convert "${arr[$i]}" "${arr[$j]}" -background white -gravity center -append \
-resize 595x842 -extent 595x842 +repage \
-font arial -pointsize 18 -undercolor white -fill black \
-gravity north -annotate +0+10 "${arr[$i]}" \
-annotate +0+431 "${arr[$j]}" \
-gravity south -annotate +0+10 "Page $pagenum of $numpages" miff:-
pagenum+=1
done
) | convert - ../result2.pdf
我没有方便托管PDF的地方,但这或多或少是我得到的输出(想象它分为3页A4。