2013-03-17 92 views
0

我试图使用Imagemagick命令创建单个字母的文本标签,并将其放置在固定尺寸画布区域的左侧,然后将它添加到另一个固定高度但宽度未知的标签。因此,期望的结果是最终透明PNG左侧的单个字母,另一标签在原点右侧设置大约100px,例如,该样机:将可变宽度的标签附加到固定尺寸的

Mockup of desired output

我都在下面的命令这个工作的,除了阴影文本标签不固定大小的盒子(应该是100像素x 25px的)。这里的结果:

Actual result

认为是什么,我需要做的就是以某种方式关闭-trim的选择,但我不知道该怎么做。 +修剪不是一个有效的选项,+ repage不会这样做。

convert \ 
\(-background transparent \ 
    \(-gravity west -fill lavender -font Constantia.ttf \ 
     -pointsize 12 label:'x' -trim \ 
     \(+clone -background black -shadow 100x3+0+0 -channel A -level 0,50% \ 
     +channel \) \ 
     +swap +repage -gravity center -composite \) \ 
-size 100x25 -gravity west \) \ 
    \(-size x25 -fill black -background transparent -font MyriadPro-Semibold.otf \ 
     -pointsize 15 label:'Long legend for x' -gravity west \) \ 
    +append -strip legend_test.png 

(装饰选项需要得到高度降至25px的 - 阴影操作,否则产生过大的垂直延伸编辑:我想我错了上面 - 甚至W/O型的 - 。修剪任何地方的命令,我希望的固定大小的图像不会工作。)

回答

1

嗯,看起来像没有太多的社区ImageMagick离开这里。我发布到ImageMagick phpBB板,并能够将答案放在一起。简而言之:

  • -trim选项不是影响每个图像被调用后的选项。相反,它本质上是一个立即执行的命令。
  • -extent选项可用于将图像增大或减小至所需的大小。显然,我在原始代码中使用的-size命令只能用于设置图像的初始大小,而不能更改已存在图像的大小。

这里是最后的工作命令:

convert \ 
\(-background transparent -extent 100x25 -gravity west \ 
    \(-fill lavender -font Constantia.ttf \ 
     -pointsize 12 label:'x' -trim -extent 100x25 -gravity west \ 
     \(+clone -background black -shadow 100x3+0+0 -channel A -level 0,50% \ 
     +channel \) \ 
     +swap +repage -gravity center -composite \) \ 
-background transparent -extent x25 \) \ 
    \(-size x25 -fill black -background transparent -font MyriadPro- Semibold.otf \ 
     -pointsize 15 label:'Long legend for x' -gravity west \) \ 
    +append -strip legend_test.png