Core Graphics 中的字体大小
我正在尝试使用 Core Graphics API 渲染一些文本,但遇到了一些概念上的困难。
我正在尝试使用 CGContextSetFontSize。 大小参数采用“文本空间单位”的形式。 那是什么? 它如何映射到“em”单位?
谢谢
I'm trying to render a bit of text using Core Graphics APIs and I'm running into some conceptual difficulties.
I'm trying to specify font size using CGContextSetFontSize. The size parameter is in something called "text space units". What is that? How does it map to "em" units?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
首先回答你的第二个问题,1 em(遵循CSS定义) 将等于您在此处指定的金额。
Core Graphics的“文本空间”源自用户空间。 还有一个额外的转换矩阵,即文本矩阵,它将用户空间转换为文本空间。 请参阅
CGContextSetTextMatrix
,Quartz 2D 如何绘制文本,以及 绘图文本。默认情况下,文本矩阵是单位矩阵,因此文本空间=用户空间。
To answer your second question first, 1 em (following the CSS definition) will equal the amount you specify there.
Core Graphics' “text space” is derived from user space. There's an additional transformation matrix, the text matrix, which transforms user space into text space. See
CGContextSetTextMatrix
, How Quartz 2D Draws Text, and Drawing Text.By default, the text matrix is the identity matrix, so text space = user space.