Imagemagick Ruby&;RMagick:确定实际宽度&;文本高度

Imagemagick Ruby&;RMagick:确定实际宽度&;文本高度,imagemagick,rmagick,fontmetrics,Imagemagick,Rmagick,Fontmetrics,我正在使用RMagick,我想用用户设置的背景色垂直或水平(取决于用户输入)绘制文本。我遇到了一个奇怪的问题:get_type_metrics(文本)返回无效数据。实际宽度/高度小于方法返回的值 我一直在尝试使用上升/下降值,但没有运气。有没有办法确定文本字符串的实际宽度/高度?我见过两种解决方案,先在空图像上绘制文本,然后确定宽度和高度,然后逐像素查看整个图像,但我认为这很愚蠢,而且非常消耗资源。另外,我发现PHPGD也有同样的问题,没有解决方案 另外,我不能使用Draw#annotate,因

我正在使用RMagick,我想用用户设置的背景色垂直或水平(取决于用户输入)绘制文本。我遇到了一个奇怪的问题:get_type_metrics(文本)返回无效数据。实际宽度/高度小于方法返回的值

我一直在尝试使用上升/下降值,但没有运气。有没有办法确定文本字符串的实际宽度/高度?我见过两种解决方案,先在空图像上绘制文本,然后确定宽度和高度,然后逐像素查看整个图像,但我认为这很愚蠢,而且非常消耗资源。另外,我发现PHPGD也有同样的问题,没有解决方案


另外,我不能使用Draw#annotate,因为用户应该能够更改背景框的大小。

正如我所发现的,在RMagick中,
结构的
成员有未记录的
边界
在中记录,文本的实际宽度和高度是这样确定的


gc = Magick::Draw.new { ... }
# *** setup gc with font, stroke, pointsize, ... *** THATS IMPORTANT!
metrics = gc.get_type_metrics("your text")
box_width = metrics.width # this one is ok by default
box_height = (metrics.bounds.y2 - metrics.bounds.y1).round # this is the actual heihgt