使用ImageMagick将另一个图像相对于文本放置

时间:2018-04-07 00:49:30

标签: imagemagick

convert inputImage.jpeg -gravity South -size x32 label:"Morning in paradise" -geometry +0+40 -composite starImage.png -composite finalImage.png

使用此命令,我可以在inputImage的底部添加文本,在此文本上添加另一个图像。但是如何将starImage图像设置(或添加前缀)到具有动态宽度和固定高度的文本的左侧。我在下面附上了一些图片来解释我想要做什么。

Obtained result

Expected result

2 个答案:

答案 0 :(得分:1)

您可以阅读星形图像,创建文本标签,并将它们一起添加到括号内。然后合成在主输入图像上组装星文图像。像这样的命令应该非常接近你所描述的。

convert inputImage.jpeg -gravity center -size x32 \
   \( starImage.png label:"Morning in paradise" +append \) \
   -geometry +0+40 -gravity South -composite finalImage.png

如果你想在文本行的两边都有一个星号,你可以阅读" starImage.png"在创建标签之后和追加之前再一次。

答案 1 :(得分:0)

我认为使用Imagemagick应该做的是设置文本所需的宽度,这样就可以在每一侧附加星形图像并有一些填充。我就是这样做的。由于您没有提供输入或星形图像,因此我将图像模拟为蓝色图像并拍摄了一些我周围的图形图像来模拟您的星星或徽标。我首先测量所需的宽度。宽度为70%的差异是大蓝色图像和徽标宽度的两倍之间的宽度。我在文本图像的每一侧附加徽标,然后在蓝色图像底部附近合成以创建最终图像。如果是在Imagemagick 7中,可以在一个命令中完成。这是Unix语法。

图像:

enter image description here

标志:

enter image description here

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table border="1">
  <tbody class="tbody">
    <tr>
      <td>111</td>
    </tr>
    <tr>
      <td>111</td>
    </tr>
    <tr>
      <td>111</td>
    </tr>
    <tr>
      <td>111</td>
    </tr>
    <tr>
      <td>111</td>
    </tr>
    <tr>
      <td>111</td>
    </tr>
    <tr>
      <td>111</td>
    </tr>
    <tr>
      <td>111</td>
    </tr>
    <tr>
      <td>111</td>
    </tr>
    <tr>
      <td>111</td>
    </tr>
    <tr>
      <td>111</td>
    </tr>
    <tr>
      <td>111</td>
    </tr>
  </tbody>
</table>

<p id="msg">

</p>


enter image description here