Ubuntu 使用ImageMagick从文本生成图像?
我正在尝试使用ImageMagick创建3840 x 2160的缩略图 我需要的图像有一个黑色的背景和白色的文字。文本应垂直和水平居中 我希望能够设置字体大小,但如果文本会延伸到图像之外,则会自动减小字体大小,使其适合左右两侧的填充量 我将用数十万张图片批量完成这项工作。根据我所能找到的,看起来你总是需要设置字体大小,而没有办法使其动态化Ubuntu 使用ImageMagick从文本生成图像?,ubuntu,command-line,imagemagick,ubuntu-16.04,imagemagick-convert,Ubuntu,Command Line,Imagemagick,Ubuntu 16.04,Imagemagick Convert,我正在尝试使用ImageMagick创建3840 x 2160的缩略图 我需要的图像有一个黑色的背景和白色的文字。文本应垂直和水平居中 我希望能够设置字体大小,但如果文本会延伸到图像之外,则会自动减小字体大小,使其适合左右两侧的填充量 我将用数十万张图片批量完成这项工作。根据我所能找到的,看起来你总是需要设置字体大小,而没有办法使其动态化 有人能确认这是否可行吗?您可以设置一个大小,指定文本的可用空间大小,并且ImageMagick将选择适合的最大点大小文本: magick -gravity c
有人能确认这是否可行吗?您可以设置一个大小,指定文本的可用空间大小,并且ImageMagick将选择适合的最大点大小文本:
magick -gravity center -background black -fill white -size 400x300 -font /System/Library/Fonts/MarkerFelt.ttc caption:"Short Text" short.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
magick identify -format "%[caption:pointsize]\n" result.png
59
如果您想知道pointsizeImageMagick选择了什么,可以这样获得:
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
magick identify -format "%[caption:pointsize]\n" result.png
59
您可以设置指定文本可用空间大小的大小,ImageMagick将选择适合以下内容的最大点大小文本:
magick -gravity center -background black -fill white -size 400x300 -font /System/Library/Fonts/MarkerFelt.ttc caption:"Short Text" short.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
magick identify -format "%[caption:pointsize]\n" result.png
59
如果您想知道pointsizeImageMagick选择了什么,可以这样获得:
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
magick identify -format "%[caption:pointsize]\n" result.png
59
如果您使用的是macOS或Linux,那么使用GNU并行处理可以非常快地处理100000个映像。如果你对此感兴趣,请打电话给我。如果你在macOS或Linux上,你可以用GNU Parallel非常快地完成100000个图像。如果你对此感兴趣,请告诉我。