我正在尝试使用ImageMagick来创建缩略图,即3840x2160。
我需要图像有一个黑色背景和白色文本。文本应该是垂直的和水平的中心。
我想要能够设置一个字体大小,但如果文本将延长图像,自动缩小字体大小,以便它适合在左和右的一些填充。
我将用几十万张图片批量地做这件事。据我所能找到的,看起来你总是必须设置一个字体大小,没有办法使它的动态。
有人能确认这是否可行吗?
发布于 2020-07-22 21:29:39
您可以设置指定文本可用空间大小的大小,ImageMagick将选择适合的最大点大小文本:
magick -gravity center -background black -fill white -size 400x300 -font /System/Library/Fonts/MarkerFelt.ttc caption:"Short Text" short.png

magick -gravity center -background black -fill white -size 400x300 -font /System/Library/Fonts/MarkerFelt.ttc caption:"Somewhat longer text that will get rendered in a smaller font" long.png

如果您希望文本周围有一个边距,您可以为文本设置一个最大大小,然后用-extent增加画布的大小--我会用红色来做,这样您就可以看到-extent添加了什么:
magick -gravity center -background black -fill white -size 400x300 -font /System/Library/Fonts/MarkerFelt.ttc caption:"Somewhat longer text" -background red -extent 410x400 long.png

如果要从文件中读取行以生成几十万张图像,则可以从另一个命令中传输文本,如下所示:
echo -n "Text supplied by other command" | magick -gravity center -background black -fill white -size 400x300 -font /System/Library/Fonts/MarkerFelt.ttc caption:@- result.png

如果您想知道ImageMagick选择了什么,您可以这样获得:
magick identify -format "%[caption:pointsize]\n" result.png
59https://stackoverflow.com/questions/63042750
复制相似问题