我正在尝试自动在图像上写引号。我正在编写的脚本选择一个随机背景并在顶部附加一个引号,并在该引号的底部放置较小的一些填充。
唯一的问题是,我无法让文字正常工作。我正在尝试将居中文本写入顶部的框,然后是底部文本居中的标题,两侧之间有一些填充。我怎样才能做到这一点?
这就是我希望通过填充这些框来排列文本的方式:(注意我不想绘制框,只是说明文本应该在哪里)
我的代码:
#!/bin/bash
# Get the text
text="This is text that will occupy until a certain space. This will be long on here."
bottom="By Michael A. Leonetti"
echo $text
bgs="bgs"
image="${bgs}/$( ls "${bgs}" | sort -R | tail -$N | head -1 )"
echo "Using background image ${image}"
width=1024
height=768
usable_percent="0.95"
bottom_percent="0.1"
padding_percent="0.05"
usable_width=$( echo "${width}*${usable_percent}"|bc )
usable_height=$( echo "${height}*${usable_percent}"|bc )
bottom_height=$( echo "${bottom_percent}*${usable_height}"|bc )
padding_height=$( echo "${padding_percent}*${usable_height}"|bc )
text_width=$usable_width
text_height=$( echo "${usable_height}-${bottom_height}-${padding_height}"|bc )
convert \
\( \
-size "${text_width}x${text_height}" \
-background none \
-fill white \
-gravity north \
caption:"${text}" \
-size "${text_width}x${bottom_height}" \
-background none \
-fill white \
-gravity south \
caption:"${bottom}" \
\) \
-composite \
\( \
"${image}" \
-resize "${width}x${height}^" \
-gravity center \
-crop "${width}x${height}+0+0" \
-brightness-contrast -30x0 \
\) \
+swap \
-gravity south \
-composite \
+repage \
"${bottom}.png"