我的目标是创建一个文本图像并将其置于其他图像之上。这是我用来创建文本图像的命令:
String[] cp_img_arguments = {"convert",
"-size", width_size + "x",
"-background", background_colour,
"-pointsize", pointsize.toString(),
"-font", font_path,
"-fill",text_colour,
"caption:" + text,
destination};
为了计算我需要的图像大小,我使用这样的FontsMetrics:
Font font = new Font(fontName, Font.PLAIN, pointsize);
Canvas canvas = new Canvas();
fontMetrics = canvas.getFontMetrics(font);
width_size = fontMetrics.stringWidth(toString());
虽然我经常使用文本截断或多行生成图像,这意味着我计算的宽度实际上不足以用于文本。
该字体来自.ttf
文件。我相信这个错误计算是因为GraphicsMagick中的密度/ DPI参数而发生的。我目前没有使用它(我相信默认值为55),但我想知道与FontMetrics计算的相比,它会如何影响实际的字体大小。
有没有人有使用gm生成带文字图像的经验?任何想法如何使图像尺寸计算更准确?