Text GDI+;

Text GDI+;,text,fonts,gdi+,Text,Fonts,Gdi+,我在GDI+中的文本呈现方面已经挣扎了一段时间。我们正在动态生成标题的图像,但在图书馆里似乎有很多东西需要等待。我可以设置字体,字体大小和其他一些东西,但我不能控制行高或字母间距 我已经构建了自己的类,它获取生成的文本图像,剪切出单独的文本行(每个字体的设置手动编码到设置文件中),并以我想要的行高重新组装它们。不过,对于字母间距,我还不能解决同样的问题 有没有人对此有解决方案,或者有图书馆(操作系统或商业)的建议来解决这个问题?我不知道这是否适用于您的解决方案,但在过去,当我需要呈现一些更复杂的

我在GDI+中的文本呈现方面已经挣扎了一段时间。我们正在动态生成标题的图像,但在图书馆里似乎有很多东西需要等待。我可以设置字体,字体大小和其他一些东西,但我不能控制行高或字母间距

我已经构建了自己的类,它获取生成的文本图像,剪切出单独的文本行(每个字体的设置手动编码到设置文件中),并以我想要的行高重新组装它们。不过,对于字母间距,我还不能解决同样的问题


有没有人对此有解决方案,或者有图书馆(操作系统或商业)的建议来解决这个问题?

我不知道这是否适用于您的解决方案,但在过去,当我需要呈现一些更复杂的文本时,我希望在呈现方式上有相当大的灵活性,我使用了这个图书馆:

它不是开源的,但它是免费的

或者,在游戏空间中,我广泛使用位图字体——如果存储字符间距等信息,它看起来可能与TTF完全相同,但在不引入一些像样的工件的情况下,您失去了对其进行缩放的能力。为了更好地了解这种方法,这里有一个构建字体的工具:


希望其中一个能给你一些帮助——任何一个都能让你控制字符间距和行高,但它们也有其局限性。

谢谢你的回答。第二个链接可能正是我想要的(在将答案标记为已接受之前,我将进一步检查它:)。第一个我不太明白。也许我很愚蠢,但据我所知,这是一个在浏览器外呈现HTML的系统?没错,HTMLlayout是一个HTML呈现组件,但你可以将它呈现到屏幕外的缓冲区中并使用它。。。通过这种方式,您只需将文本原型化为HTML,打印文本是您搜索并替换为实际要显示的文本的内容。它为您提供了更大的灵活性,因为您可以通过CSS进行操作,并且可以对其显示方式进行非常具体的控制。另外,如果您选择位图字体路径,并且确定确实需要缩放,有一种称为Alpha测试放大率的技术,效果非常好——下面是Valve guys的白皮书:使用这种技术可以在缩小和缩放时保持字体边缘的美观和清晰。因为你对位图字体方法更感兴趣,这里有一个链接,介绍了更多细节,并包括代码等: