double *fm = MagickQueryFontMetrics(mw_temp, dw_wand, text_utf8); //获取文字在指定字体和字号下的宽度和高度
double textWidth = fm[11]; //文本的宽度, 不 +1 右侧有些字母少一个像素不能显示
/** textHeight = fm[2] - fm[3] , 其实大部分情况下: fm[2](ascender) - fm[3](descender) = fm[6](maximum horizontal advance); 但很少时间也不一定!!!**/
/*
下面的这个参数不靠谱,不能使用:
fm[ 7][ box-x1]: -7.140625
fm[ 8][ box-y1]: -33554429.109375 (楷体, 32号字, 设置文字中含有汉字, 比如: 制作工具, 这里就显示一个非常大的负数!!!
fm[ 9][ box-x2]: 58.593750
fm[10][ box-y2]: 39.187500
*/
double textHeight = fm[2] - fm[3]; //fm[6];
/** 设置文字的重力位置, 也就是从哪个方向开始写, 这涉及到文字的定位坐标 **/
DrawSetGravity(dw_wand, SouthGravity); //设置 SouthGravity 后,就可以从 0,0 绘制文字。
时间: 2024-10-11 20:03:59