You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复Node.js gm(GraphicsMagicks)文本随机显示加粗的问题

Node.js gm drawText 文本随机加粗问题解决

我使用Node.js的gm库的drawText函数按坐标给图片添加文本,其他功能都正常,但文本会随机显示为加粗状态(如下图红框标记处)。我不需要文本显示加粗效果,如何让所有文本都保持正常样式?

代码示例:

const imageGM = gm(originalImagePath).font(path.join(__dirname, '../', 'assets/R-PMingLiU-TW-2.ttf'));
const fntSize = 42;
imageGM.fontSize(fntSize).drawText(xPos, YPos, value);

效果截图:
文本随机加粗效果

解决方法

  • 显式指定字体权重:调用font()方法时,传入配置参数设置字体权重为normal,避免gm自动匹配字体的加粗变体。修改代码如下:
    const imageGM = gm(originalImagePath)
      .font(path.join(__dirname, '../', 'assets/R-PMingLiU-TW-2.ttf'), { weight: 'normal' });
    const fntSize = 42;
    imageGM.fontSize(fntSize).drawText(xPos, YPos, value);
    
  • 检查字体文件:确认使用的R-PMingLiU-TW-2.ttf本身仅包含普通样式,没有内置加粗变体;同时检查系统中是否存在同名的加粗字体,避免gm误加载。可以换一个明确只有普通权重的字体文件测试。
  • 强制禁用粗体:在绘制文本前调用fontWeight('normal')(部分gm版本支持),确保绘制状态为普通样式:
    imageGM.fontSize(fntSize).fontWeight('normal').drawText(xPos, YPos, value);
    

内容的提问来源于stack exchange,提问作者Evan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 09:42:51