2017-07-10 6 views
0

Rmagickのドキュメントによれば、テキストが配置される矩形の幅を設定できます。以下はRmagickのカスタムテキストwidth/padding(注釈メソッドを使用)

http://www.simplesystems.org/RMagick/doc/draw.html#annotate

我々が使用しているコードですが、我々は、パディングまたは注釈ブロック内のテキストのカスタム幅を設定することはできません。

ユースケースでは、注釈ブロックに与えたテキストのカスタムパディングが必要でした。

img=Image.new(1500,600) 
    b=Magick::Draw.new 

    b.annotate(img,120,10,120,120,"5"){ |txt| 
    txt.pointsize = 58 
    txt.undercolor= "blue" 
    } 

    b.get_type_metrics(img, "5") 
    img.write("undercolor3.gif") 

数多くのことを試しましたが、それを動作させることはできませんでした。

+1

どのようなパディングが話していますか。文字間のパディング?行間?テキスト自体の周り? –

+0

@AnRMagickUserテキスト自体の周り。私はパディングなしで非常に醜い見えるテキストの周りに下色があります。 –

答えて

0

画像上に希望の下色のブロックを描き、画像がそのブロックの上になるように注釈を付けます。

ブロックの希望のサイズを決定するには、get_type_metricsまたはget_multiline_type_metricsを使用してテキストの寸法を取得し、必要なパディングを追加します。

0

ImageMagickの注釈には、下地の色を塗りつぶすオプションがありません。しかし、あなたはそれを騙すことができます。最も簡単な方法は、 "\"を使用してテキストの左右にスペースを入れることです。しかし、それは左右にだけ詰まるでしょう。 label:改行を追加することはできますが、それは注釈では機能しません。 -interline-spacingを追加することはできますが、それは底部にしか埋め込まれません。しかし、ここではトリックです。少し大きめのポイントサイズでアンダーカラーにテキストを作成し、それからあなたのカラーテキストで上書きします。たとえば、次のようにパディングなし

変換logo.jpgの-gravityセンター-undercolorピンク-pointsize 24 -fill黒-annotate + 0 + 0 result1.jpg

enter image description here "これは、いくつかのテキストです"パディング付き

convert logo.jpg -gravity center -pointsize 34 -undercolor pink -fill pink -annotate +0+0 "X     X" -pointsize 24 -fill black -annotate +0+0 "This Is Some Text" result2.jpg 

代わりに、あなただけの所望の大きさの画像の中央にピンクの長方形を描くことができます。

enter image description here

関連する問題