text - 向ImageMagick添加文本时标题,绘制,注释,标签之间的区别

标签 text imagemagick imagemagick-convert caption annotate

我正在尝试使用ImageMagick将文本添加到图像。我看到了多个使用draw,label,caption,annotate等的示例。
两者之间有什么区别?
我可以使用CLI测试上述命令的结果,但是在尝试使用IM4java由java运行时遇到了麻烦。
Java代码段的任何帮助将非常有用。

最佳答案

这是我的看法-颇为自以为是,欢迎其他人来编辑和添加他们的见解。
label:像其他包含冒号(:)的运算符一样,例如gradient:xc:logo:label:运算符生成其自己的 Canvas 。这意味着您不必在现有图像上绘制/键入文本,而只是在文本上绘制/键入文本,它会为要放置的文本创建背景。

如果事先指定-size,它将创建一个具有该大小的 Canvas ,并将文本放在适合的最大磅数上。因此,让我们尝试一个固定的宽尺寸:

convert -background black -fill white -gravity center -size 800x100 label:'Stack Overflow' text.png

enter image description here

还有一个狭窄的固定大小:
convert -background black -fill white -gravity center -size 100x100 label:'Stack Overflow' text.png

enter image description here

如果您事先未指定-size,它将以您要求的磅值创建文本并将其放在适当大小的 Canvas 上。因此,让我们尝试一个没有 Canvas 大小的小磅值:
convert -background black -fill white -gravity center -pointsize 16 label:'Stack Overflow' text.png

enter image description here

还有一个没有 Canvas 大小的大磅字号:
convert -background black -fill white -gravity center -pointsize 64 label:'Stack Overflow' text.png

enter image description here

您也可以只指定宽度,而不指定高度,例如使用-size 200x或仅高度而不是宽度,例如-size x50,它将使用最大字体,但可以将其限制在您指定的尺寸内。

以下内容将使您了解可以影响文本的哪些属性:
convert -background black -fill yellow -strokewidth 2 -stroke magenta \
    -undercolor blue -size 400x100 -gravity center -font 'AppleChancery' label:'Stack Overflow' text.png

enter image description here
caption:类似于label:,但它也进行自动换行,因此它将为您自己在多行中分布一个长句子。
pango:是一种类似于HTML的相当复杂的标记语言,它使您可以在句子中间更改字体,颜色,粗体,斜体,下标,上标和其他文本功能。
-draw "text 10,10 'Your message'"在某种程度上已被弃用,但是它允许您在特定位置绘制现有图像,例如上面显示的10,10。请注意,它没有冒号(:),因此您已经需要一个图像/ Canvas 才能将其绘制到其中。
-annotate确实取代了-draw。像-draw一样,您需要已经有一个 Canvas /图像可以在其上绘制,但是与-draw相比,它允许您更轻松地定位,剪切和旋转文本。

安东尼·蒂森(Anthony Thyssen)对所有这些内容进行了精彩的讨论,并提供了更多here

关于text - 向ImageMagick添加文本时标题,绘制,注释,标签之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55469545/

相关文章:

php - 每 x 行分割文本文件

shell - 可以curl将远程url中的图像下载到缓存中,然后使用管道进行转换吗?

imagemagick - ImageMagick:转换为转换后的图像保留相同的名称

python - 过滤出现在两个标记之间的文本

C# 从字符串中提取转义字符

node.js - 如何使用 imagemagick 在图像周围添加更多空白

php - 如何确保JPEG图像有效并且可以被PHP处理?

c - C 中的 MagickConstituteImage() 段错误

php - 无法使用 php shell_exec 转换 pdf 文件

linux - Bash > 从文本文件中检索整数值数组而不重复