2013-03-17 118 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