根据Rmagick的文档,我们可以设置放置文本的矩形的宽度。
http://www.simplesystems.org/RMagick/doc/draw.html#annotate
以下是我们正在使用的代码,但我们无法为注释块中的文本设置填充或自定义宽度。
对于一个用例,我们希望为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")
已经尝试了很多东西,但无法使其发挥作用。任何想法?
答案 0 :(得分:0)
在图像上绘制一个所需底色的块,然后注释图像,使文本在块上。
要确定所需的块大小,请使用get_type_metrics或get_multiline_type_metrics获取文本的尺寸,然后添加所需的填充量。
答案 1 :(得分:0)
ImageMagick中的注释没有任何填充底色的选项。但你可以欺骗它。最简单的方法是使用“\”在文本的左侧和右侧放置空格。但那只会在左右两侧填充。在标签中:您可以添加换行符,但这在注释中不起作用。您可以添加-interline-spacing,但这只会在底部填充。但这是一个技巧。使用略大的点数在底色中创建文本,然后使用所需的颜色文本进行书写。例如:
没有填充:
convert logo.jpg -gravity center -undercolor pink -pointsize 24 -fill black -annotate + 0 + 0“This Is Some Text”result1.jpg
使用填充:
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
或者,您可以在所需大小的图像中心绘制一个粉红色矩形。