我使用nodejs 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);
您在 Node.js 中的 gm 模块中遇到的问题(文本随机显示为粗体)可能是由于底层 GraphicsMagick/ImageMagick 系统的字体渲染或抗锯齿设置造成的。但是,gm 模块不提供对这些设置的直接控制。
Node.js 中的 gm 模块是 GraphicsMagick/ImageMagick 命令行工具的包装器,因此其功能受到这些工具的限制。
您使用的drawText 函数是 GraphicsMagick 中绘图基元的一部分。根据 GraphicsMagick 文档,draw 命令(包括 drawText)允许您使用形状、文本和其他图形元素来注释图像。但是,文档没有提供如何处理文本渲染的具体细节
您可以尝试以下一些方法:
gm:Node.js 的 GraphicsMagick - GitHub Pages:这是 gm 模块的文档,您在 Node.js 应用程序中使用该模块。它提供了有关如何使用该模块及其各种功能的信息,包括drawText。
aheckmann/gm:节点的 GraphicsMagick - GitHub:这是 gm 模块的 GitHub 存储库。您可能会在此处找到有关您的问题的更多信息,或者您可以提出问题向维护人员询问该问题。
我可以用常规字体绘制粗体文本吗? - ImageMagick:此论坛主题讨论如何在 ImageMagick 中使用常规字体绘制粗体文本。一个建议是将 -linescolor 设置为与 -fill 相同的颜色,并将 -lineswidth 设置为 1(默认)或 2。但是,最好的方法是使用字体的粗体版本(如果它是特定字体的一部分)家人。
ImageMagick:粗体和斜体字体? - Stack Overflow: 这个 Stack Overflow 线程讨论了如何在 ImageMagick 中将字体设置为粗体和斜体。建议的一种解决方案是使用带有连字符的字体名称,例如 -font "Arial-Bold-Italic"。
ImagickDraw::setFontWeight - 手册 - PHP: ImagickDraw::setFontWeight 函数的 PHP 手册页提到任何 551 及以上的值都会给出粗体字体。
ImageMagick 文本显示 – Geo Imagine Developer:这篇博客文章讨论如何使用 ImageMagick 将文本添加到图像。它提到,如果 ImageMagick 没有按预期放置文本(或根本不是文本),则您的图层可能没有填满画布。