0

Imagemagick コマンドを使用して 1 文字のテキスト ラベルを作成し、それに影を付けて、固定サイズのキャンバス領域の左側に配置し、これを高さは固定だが幅が不明な別のラベルに追加しようとしています。したがって、望ましい結果は、最終的な透過 PNG の左側にある 1 つの文字と、原点の右側に約 100 ピクセルの別のラベル セットです。たとえば、次のモックアップです。

希望する出力のモックアップ

影付きのテキスト ラベルが固定サイズのボックス (100 ピクセル x 25 ピクセル) にないことを除いて、次のコマンドでこれらすべてが機能します。結果は次のとおりです。

実結果

どうにかして -trim オプションをオフにする必要があると思いますが、その方法がわかりません。+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 に下げるにはトリム オプションが必要です。そうしないと、シャドウ操作によって垂直方向の拡張が大きくなりすぎます。私が望んでいる固定サイズの画像はうまくいきません。)

4

1 に答える 1

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
于 2013-03-19T03:48:41.430 に答える