2017-07-10 55 views
0

根據Rmagick的文檔,我們可以設置放置文本的矩形的寬度。Rmagick使用註釋方法的自定義文本寬度/填充

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") 

是否嘗試過的東西一噸的數量,但不能使它work.Any想法?

+1

你在說什麼樣的填充。字符之間填充?在線之間?圍繞着文本本身? –

+0

@AnRMagickUser圍繞文本本身。我的文字看起來非常難看,沒有填充。 –

回答

0

在圖像上繪製所需底色的塊,然後對圖像進行註釋以使文本位於塊之上。

要確定塊的所需大小,請使用get_type_metrics或get_multiline_type_metrics獲取文本的尺寸,然後添加所需的填充量。

0

在ImageMagick中註釋沒有任何選項來填充底色。但你可以欺騙它。最簡單的方法是使用「\」在文本的左側和右側放置空格。但那隻會在左側和右側填充。在標籤中:您可以添加換行符,但在註釋中不起作用。你可以添加-interline-spacing,但只能放在底部。但這是一個竅門。在底色中用稍大的點數創建文本,然後用您想要的顏色文本覆蓋它。例如:

沒有填充:

轉換logo.jpg -gravity中心-undercolor粉色-pointsize 24 - 填充黑色-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