gpt4 book ai didi

c++ - DirectWrite 文本位置因字体大小而异

转载 作者:太空狗 更新时间:2023-10-29 19:58:46 24 4
gpt4 key购买 nike

我正在使用 DirectWrite 将一些文本呈现到窗口中。使用不同的字体大小时,除了定位外,一切似乎都有效:我希望 2 个文本的字体大小为 v1 和 v2,并且都带有 (x, y) = (0, 0) 位于左上角,但如您所见:

enter image description here

“Test”和“X”都不在左上角。

有没有办法让它工作?

最佳答案

欢迎来到字体世界。字体可能是最难使用的东西,因为字体本身就有很多惊喜(有很多新标准本应解决所有问题,但只会造成更多混淆,因为几乎没有字体 100% 支持它,甚至一些“经典”字体也有它们中的部分/错误信息)GDI、GDI+、DirectDraw 不会在相同的像素位置绘制字体,因为数学、坐标舍入、抗锯齿...(如果你用自由打字)。

当您尝试打印字体时,还有其他 pb。所以解决这个问题的唯一方法是我。甚至不要尝试在某些像素坐标处绘制字体。做好在屏幕上绘制渲染良好的字体、图片、线条的工作,尽最大努力将它们转换为打印坐标以进行导出,但不要指望控制字体中的像素,一切都是近似的。

PS:不要相信字体中的内部字段。在 Arial 上,它们适用于所有其他字体,有些字体丢失或初始化为零,但“有趣”部分并不总是相同的字段,不存在它取决于字体。如果您之前按字体尝试过,则只能使用这些字段。是的,字体很棒!

关于c++ - DirectWrite 文本位置因字体大小而异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18104699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com