如何使用gm为node添加居中文本(graphicsmagick/imagemagick)?

7
这与node的"gm"扩展有关,http://aheckmann.github.io/gm/docs.html 我需要添加一些文本,围绕一个边界框居中显示(水平方向即可)。函数drawText()需要x,y坐标,但没有办法绘制居中的文本。
否则,我需要一个函数,可以返回给定字体/大小的文本字符串的宽度,这样我可以在调用drawText()之前在javascript中计算我的起始x位置。
1个回答

9
您可以这样使用regiongravity函数:
gm(filePath)
    .region(WIDTH, HEIGHT, X, Y)
    .gravity('Center')
    .fill(color)
    .fontSize(textFontSize)
    .font(font)
    .drawText(0, 0, 'This text will be centered inside the region')

X和Y来自哪里? - Victorio Berra
从您的代码中,这些描述了文本边界框的位置和大小,该文本将呈现在其中心。 - tomericco
3
我完全无法让这个工作。我能够使用棕褐色过滤器使区域起作用,例如.region(WIDTH, HEIGHT, X, Y).sepia(),但无法使用文本。相反,我只是使用gm(filePath).drawText(0, 250, 'my text', 'North')将文本置于中心位置。请注意不要改变原来的意思。 - antun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接