gpt4 book ai didi

fonts - 裸骨 x11 如何绘制 truetype 或其他抗锯齿字体?

转载 作者:行者123 更新时间:2023-12-04 02:05:31 25 4
gpt4 key购买 nike

如何在套接字上使用准系统 X11 连接绘制文本?

我通过套接字连接到 x11 服务器并手动处理协议(protocol)。我不使用 Xlib 或 XCB,更不用说 Qt、GTK 甚至 Freetype。我有一个 Unresolved 问题,我无法绘制除古代位图字体以外的字体。我想用 LCD 子像素渲染绘制 FreeSans 或其他支持 Unicode 的字体,但只使用内置的 x11 功能。可能使用了一些 x11 扩展。但是哪一个?要使用什么功能?如何在本地或服务器上选择字体? X11 能否使用提供的样式信息为我渲染字体,包括颜色、背景颜色、字体名称、大小和装饰?

最佳答案

不,X 不会为您渲染字体,但它可以渲染抗锯齿像素图“字形”序列。如果您只想使用核心 X 协议(protocol),则必须在客户端渲染所有内容(大多数库都会这样做,通常使用 cairo 库)。

我建议尝试: 1) 使用 FreeType 在本地为您的字体预渲染所有字形; 2) 使用 CreateGlyphSet Xrender 请求上传字体; 3) 使用 CompositeGlyphs8/16/32 请求绘制字符串。阅读第 12 节 - XRender documentation 的“字形渲染” .每个字形都有自己的偏移值,但是无法定义字距调整对。

您还必须处理其他复杂性(从右到左、垂直等)。做到 100% 正确是一项非常复杂的任务,但是没有边缘情况肯定是可行的,而且是一个很好的教育项目。

您可以在我的 javascript x 客户端库中查看原始套接字 + xrender 通信的示例:https://github.com/sidorares/node-x11

关于fonts - 裸骨 x11 如何绘制 truetype 或其他抗锯齿字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21215199/

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