5

我对 ImageMagick 很陌生 - 我已经阅读了一些文档,现在我来到了第一个真实世界的情况。我有图像(300 * 500),并且我有一些文本需要尽可能地(最大可能)适合最顶部图像的 20%。所以文本必须在 300*100 矩形中,图像的其余部分保持不变。这甚至可以通过图像魔术实现吗?什么是最好的方法来做到这一点

我正在寻找命令行或 php 扩展解决方案。下面的简单图解

简单的插图

4

1 回答 1

8

由于您没有提供用于测试和应用一些文本的示例图像,因此我使用以下命令创建了一个:

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

结果图像:

输出示例 1 输出示例 2

(输出与您给定的帧不完全匹配——但这只是因为我的测试文件仍然有一个白色的、未填充的边框(作为图像的一部分),我没有费心去删除它......)

换句话说:只是不要费心使用-fontsize. 只给出应该有文本注释的区域的大小。然后 ImageMagick 会自动选择最匹配的字体大小并使用它。

于 2012-09-01T23:38:41.470 回答