首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ImageMagick从文本生成图像?

使用ImageMagick从文本生成图像?
EN

Stack Overflow用户
提问于 2020-07-22 20:32:14
回答 1查看 1.7K关注 0票数 2

我正在尝试使用ImageMagick来创建缩略图,即3840x2160。

我需要图像有一个黑色背景和白色文本。文本应该是垂直的和水平的中心。

我想要能够设置一个字体大小,但如果文本将延长图像,自动缩小字体大小,以便它适合在左和右的一些填充。

我将用几十万张图片批量地做这件事。据我所能找到的,看起来你总是必须设置一个字体大小,没有办法使它的动态。

有人能确认这是否可行吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-22 21:29:39

您可以设置指定文本可用空间大小的大小,ImageMagick将选择适合的最大点大小文本:

代码语言:javascript
复制
magick -gravity center -background black -fill white -size 400x300 -font /System/Library/Fonts/MarkerFelt.ttc    caption:"Short Text" short.png

代码语言:javascript
复制
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添加了什么:

代码语言:javascript
复制
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

如果要从文件中读取行以生成几十万张图像,则可以从另一个命令中传输文本,如下所示:

代码语言:javascript
复制
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选择了什么,您可以这样获得:

代码语言:javascript
复制
magick identify -format "%[caption:pointsize]\n" result.png
59
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63042750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档