c# - 以像素为单位查找文本 "space"值

标签 c# c++ text typography

在处理字体时,有没有办法弄清楚如果两个字符之间的间距是“1 2”,它应该是多少?

如果它在 C++ 或 C# 中已知,我不介意。如果它是在 C++ 中,我会将其编码,如果是在 C# 中,我会将其保存到文件中并在 C++ 中加载。我尝试查看 TextMetric 结构,但它不存在。

最佳答案

Graphics.MeasureCharacterRanges通过在前后添加零宽度连接符 \u200D 来测量单个字形(甚至是空格),获得了很好的结果。然而,由于我认为是零宽度连接符,它确实忽略了所有字距调整的东西。

您需要一堆额外的参数,但是 new StringFormat(StringFormat.GenericTypographic)Rectangle.Empty 对我来说就很好。

它返回字符串中每个字符的漂亮浮点边界数组。

关于c# - 以像素为单位查找文本 "space"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5916560/

相关文章:

c# - C# 中的 DES 初始化向量

c# - 在 xml 中获取属性名称和属性值

java - 从文本文件中查找唯一 IP 地址列表

c# - MIDI 声音仅在一个 channel (左或右)

c# - 如何安排有条件的 ContinueWith

c++ - 在 C++ 中在堆栈上创建实例时如何保持多态性?

c++ - 从不同的字节中提取和组合位 c c++

android - cmake 失败与 android ndk

python - 使用 Python 从大型文本文件到稀疏矩阵

java - 文本处理 - 检测您是否位于 Java 中的 HTML 标记内