我对 ImageMagick 很陌生 - 我已经阅读了一些文档,现在我来到了第一个真实世界的情况。我有图像(300 * 500),并且我有一些文本需要尽可能地(最大可能)适合最顶部图像的 20%。所以文本必须在 300*100 矩形中,图像的其余部分保持不变。这甚至可以通过图像魔术实现吗?什么是最好的方法来做到这一点
我正在寻找命令行或 php 扩展解决方案。下面的简单图解
我对 ImageMagick 很陌生 - 我已经阅读了一些文档,现在我来到了第一个真实世界的情况。我有图像(300 * 500),并且我有一些文本需要尽可能地(最大可能)适合最顶部图像的 20%。所以文本必须在 300*100 矩形中,图像的其余部分保持不变。这甚至可以通过图像魔术实现吗?什么是最好的方法来做到这一点
我正在寻找命令行或 php 扩展解决方案。下面的简单图解
由于您没有提供用于测试和应用一些文本的示例图像,因此我使用以下命令创建了一个:
convert \
http://i.stack.imgur.com/RfJG6.png \
-crop 312x513+579+0 +repage \
so#12231624-right.png
使用生成的图像作为输入,运行这三个命令来查看它是如何工作的(在 Linux 或 Mac OS X 上):
width=$(identify -format %W so#12231624-right.png)
convert \
-background '#0008' \
-gravity center \
-fill white \
-size ${width}x100 \
caption:"This is a sample text to test \
the automatic sizing of fonts by ImageMagick." \
so#12231624-right.png \
+swap \
-gravity north \
-composite \
output1.png
convert \
-background '#0008' \
-gravity center \
-fill white \
-size ${width}x100 \
caption:"This is a even longer sample text. \
It also serves to test if automatic sizing of fonts \
by ImageMagick works as expected: just don't specify \
any fontsize, and let ImageMagick go for the best fit..." \
so#12231624-right.png \
+swap \
-gravity north \
-composite \
output2.png
结果图像:
(输出与您给定的帧不完全匹配——但这只是因为我的测试文件仍然有一个白色的、未填充的边框(作为图像的一部分),我没有费心去删除它......)
换句话说:只是不要费心使用-fontsize
. 只给出应该有文本注释的区域的大小。然后 ImageMagick 会自动选择最匹配的字体大小并使用它。