imagemagick 字体规格——如何将文本放置在网格中?
让我们看一下下面的图片:
我有一个水平网格,我想在其中放置文本这个网格。上面的例子是错误的,因为我想要的是每个字符都准确地放置在网格的一个单元格中。
我想知道,我是否可以调整 imagemagick 中的文本输出来实现此目的,而无需使用自己的命令放置每个字符。
一些额外的事实:
- 我正在使用一些 shell 脚本中的 imagemagick
- 我正在使用 imagemagick 的 MVG 进行相当复杂的绘图 - 所以如果仍然可以使用 MVG 命令放置文本那就太好了
- 我可以通过以下方式调整网格的宽度几个像素,如果您的解决方案需要这样做,但所有单元格当然需要具有相同的宽度
- 我总是使用相同的固定宽度字体(Courier)为此
- 我能够解析我的外壳中的字体指标编写脚本并使用此信息来应用我的文本命令的值
- 我只关心水平放置,垂直放置并不重要,因为我单独渲染每一行
考虑到这一切 - 我的问题有什么解决方案吗?
多谢!
let's have a look at the following image:
I have a horizontal grid and i want to place a text in this grid. The above example is wrong, because what i would like to have is that each character is placed exactly in one of the cells of the grid.
I wonder, if i can adjust the text-output in imagemagick to achieve this, without having to place each of the characters with it's own command.
Some additional facts:
- i am using imagemagick from some shell script
- i am doing rather complex drawings with imagemagick's MVG -- so it would be nice if the text could be still placed with the MVG commands
- i am able to adjust the width of the grid by a few pixel, if this would be required with your solution, but all cells of course need to have the same width
- i am always using the same fixed-width font (Courier) for this
- i am able parse the font-metrics in my shell script and use this information to apply values to my text-commands
- i only care about horizontal placement, vertical placement is not important because i render each row individual
With all this in mind -- is there any solution for my problem?
Thanks a lot!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用字距调整选项 - 设置字符间距。
例如
将生成以下图像。您必须简单地找到正确的字距调整值来匹配网格。 (对于等宽字体 - 就像您的 Courier)
You can use the kerning option - setting inter-character spacing.
e.g.
will generate the following images. You must simply find the right kerning value for match the grid. (for monospaced font - like your Courier)
如果您想将非单色字体强制放入网格中,则可以使用以下脚本:
If you have a non mono-typed font that you want to force into a grid, you can use this script: