将 TrueType 字体 (TTF) 中的字符(字形)转储到位图中
我有一个自定义 TrueType 字体 (TTF),它由一堆图标组成,我想将其渲染为单独的位图(GIF、PNG 等)以在 Web 上使用。您可能认为这是一个简单的任务,但显然不是?这里有大量与 TTF 相关的软件:
http://cg.scs。 carleton.ca/~luc/ttsoftware.html
但这都是不同程度的“不完全是我想要的”,损坏的链接和/或很难甚至不可能在现代 Ubuntu 机器上编译 - 例如。 dumpglyphs (C++) 和 ttfgif (C) 由于模糊的缺少依赖项而无法编译。有什么想法吗?
I have a custom TrueType font (TTF) that consists of a bunch of icons, which I'd like to render as individual bitmaps (GIF, PNG, whatever) for use on the Web. You'd think this is a simple task, but apparently not? There is a huge slew of TTF-related software here:
http://cg.scs.carleton.ca/~luc/ttsoftware.html
But it's all varying levels of "not quite what I want", broken links and/or hard to impossible to compile on a modern Ubuntu box -- eg. dumpglyphs (C++) and ttfgif (C) both fail to compile due to obscure missing dependencies. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
尝试 PIL 的 ImageDraw 和 ImageFont 模块
代码是这样的
Try PIL's ImageDraw and ImageFont module
Code would be something like this
其他答案的更简洁、更可靠的版本(为我剪掉了一些字形的一部分):
我很想知道是否有更好的方法从 ImagingCore 对象构建 PIL 图像
font .getmask() 返回。
A more concise, and more reliable version of the other answers (which cut off parts of some glyphs for me):
I’d be interested to know whether there’s a better way to construct a PIL Image from the ImagingCore object that
font.getmask()
returns.这是 S.Mark 答案的一个有效实现,它将黑色的字符“a”到“z”转储到正确大小的 PNG 中:
Here's a working implementation of S.Mark's answer that dumps out chars 'a' to 'z' in black into correctly-sized PNGs:
Python3
工作实现了 S.Mark 的上述答案,但在字体文件和字体文件中添加了更多注释、变量和示例。人物。
我试图进行描述,但您可以根据需要进行简化。
要求:PIL(Pillow)
PIL的ImageDraw 和 ImageFont 模块
Python3
Working implementation of S.Mark's answer of the above, but added some more comments, variables, and examples to font files & characters.
I've tried to be descriptive, but you can simplify to work how you need it to.
Requirements: PIL (Pillow)
PIL's ImageDraw and ImageFont module
使用一些成像软件(例如 Gimp)显示您感兴趣的所有字符,然后将每个字符保存到文件中。不快也不高效,但你知道你会得到什么。
Use some imaging software like the Gimp to display all the characters you're interested in, then save each one to a file. Not fast or efficient, but you know what you'll be getting.