获取字体字形作为矢量,操作和生成 SVG 或位图

发布于 2024-08-19 21:28:35 字数 215 浏览 9 评论 0 原文

我有一个应用程序需要对文本应用一些转换(包括非仿射转换)。有谁知道一个工具包(或一组工具)可以让我引入 True Type 或 Postscript 字体,获取字形作为轮廓,然后对轮廓应用转换并将其渲染为位图或 svg 文件? Flash 不会进行非仿射变换,因此它已被淘汰。 Illustrator 有一个将文本转换为轮廓的功能,但 Illustrator 脚本非常不稳定,所以我不能真正使用它。感谢您的任何帮助。

I have an application that needs to apply some transformations to text (including non-affine transformations). Does anyone know of a toolkit (or group of tools) that would let me bring in a True Type or Postscript Font, get the glyphs as outlines, then apply transformations to the outlines and render it as a bitmap or svg file ? Flash won't do non-affine transformations so it is out. Illustrator has a function which converts text to outlines, but Illustrator scripting is very unstable so I can't really use it for this. Thanks for any help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

牵强ㄟ 2024-08-26 21:28:35

您可以使用 蜡染 TTF 到 SVG 字体转换器。 SVG 字体格式使用与 SVG 元素使用的路径数据格式相同的路径数据格式。

例如,是使用上述工具转换 Gentium Basic Regular 的输出。有了正确的坐标系,您就可以抓取路径数据,将其转换为您喜欢的方式,然后使用 绘制它。请注意,SVG 字体中的字形坐标系实际上是倒置的,(0,0) 位于字形单元格框的左下角,而常规 SVG 画布的左上角为 (0,0) 。因此,不要忘记翻转字形,例如将 transform="scale(1,-1)" 放在用于渲染字形的 上。

一旦您拥有将字形呈现为形状的 SVG 文档,您就可以使用您最喜欢的工具将其转换为位图。 (Batik 也可以这样做。)

You could use the Batik TTF to SVG Font converter. The SVG font format uses the same path data format that the SVG <path> element uses.

For example, this is the output from converting Gentium Basic Regular using the above tool. With the right coordinate system, you can just grab out the path data, transform it however you like, and then draw it with a <path>. Note though that the glyph coordinate system in SVG fonts is actually inverted, with the (0,0) at the bottom left corner of the glyph cell box, compared to the regular SVG canvas which has (0,0) at the top left corner. So don't forget to flip the glyph, e.g. by putting transform="scale(1,-1)" on the <path> you use to render the glyph.

Once you have the SVG document that renders the glyphs as shapes you can convert it to a bitmap using your favourite tool. (Batik can do that too.)

请帮我爱他 2024-08-26 21:28:35

虽然 Batik 是一个很好的答案,但它只会将 TrueType 字体转换为 SVG 字体。如果您有 OpenType 字体,并且它们现在越来越占主导地位,您可以使用 FontForge 获取这些字体的 SVG 字体。使用 OpenType 的另一个优点是,生成的 SVG 在路径中不仅使用二次贝塞尔曲线,还使用三次贝塞尔曲线,效率更高。

While Batik is a good answer, it will convert only TrueType fonts to SVG Fonts. If you have OpenType fonts, and they more and more dominate now, you can use FontForge to get an SVG Font for these. Another advantage of using OpenType is that the produced SVG uses not only quadratic but also cubic Beziers in the path which is more effective.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文