问题标签 [pangocairo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 是否可以通过 fontconfig 或 pango 获得字体中所有字符的最小上升?
我可以在 pango 中看到我们可以查询最大上升(即从水平基线到最高“字符”坐标的垂直距离)。
但我也需要最低限度的上升。这可以通过 pango/fontconfig 或其他库实现吗?(Linux)
pdf-generation - gnuplot中的pdfcairo'未知或不明确的终端类型'
将 gnuplot 从 4.6 升级到5.0.1后,我遇到以下错误:
我该如何解决?
PS:pdfcairo
在以前的版本(4.6)中工作正常。
我通过以下命令安装 gnuplot:
如GNUPLOT 版本 5.0.1 发行说明中所述pdfcairo
,默认情况下包含 。
Cairo/pango/wxWidgets 这套终端包括
pngcairo、pdfcairo、epscairo 和 cairolatex 用于输出到文件
用于交互显示的 wxt 如果配置脚本找到所需的 libcairo、libpango、libcairo、libwxgtk 和相关支持库,所有这些都将默认构建 要禁用这些终端:
./configure --without-cairo ./configure --with-cairo --disable-wxt
c++ - 在 Cairo 曲面之前创建 Pango 布局
在我的应用程序中,我使用 Pango 和 Cairo 创建文本纹理。这些纹理的宽度是固定的,但应该缩放它们的高度以适应文本内容。在这种情况下,父对象将缩放它们的高度以匹配文本。
问题是,我初始化 Pango 和 Cairo 的方式不允许这样做。目前,该系统由以下人员设置:
它固定了高度,至少是表面的高度——这是我不想做的事情,至少不是一直都不想做。
我的理解是,如果没有指定布局高度,它会自动缩放高度,然后可以通过pango_layout_get_size()
. 我想先创建布局,然后使用此函数的输出创建表面。
但是,pango_cairo_create_layout()
需要已经创建表面,并且我一直无法找到pango_layout_new()
通过 Cairo 渲染布局的方法。API 记录了渲染函数之一pango_cairo_update_layout()
,指定pango_cairo_create_layout()
必须用于创建布局;然而,更重要的功能,pango_cairo_show_layout()
没有这样的要求,我不确定这是否意味着允许任何 Pango 布局。虽然我可以测试它是否有效,但我担心反复试验可能会导致我出现未定义的行为。
我觉得我陷入了先有鸡还是先有蛋的境地,Pango 的文档主要是 API 参考,几乎没有解释如何使用该库。有没有办法正确地做到这一点?
gtk# - pango_cairo_layout_path 方法不遵守字距调整
我正在使用 pango 库来做一些文本布局和 cairo 后端进行渲染。在我看来 pango_cairo_layout_path 方法不尊重字距调整。
我正在使用 gtk# 项目提供的 pango 和 cairo 的 c# 绑定。此外,我正在使用也与 gtk# 项目一起提供的 pango-cairo 运行时。
这是演示问题的图像(字体:Arial)
第一行来自 Inkscape 渲染,第二行来自 pango-cairo
pango/cairo 中是否有任何已知的错误?...或者我做错了什么
你知道有什么解决办法吗...
提前致谢
memory-leaks - Pango 内存泄漏
我在目前正在 MacOSX 上编译的试驾应用程序中使用 Pango 库和 Cairo,没有 GTK。我有一个内存泄漏问题,我已经追踪到这个函数:
这个例程被调用了很多次,可能在一秒钟内被调用了一百次。并且内存泄漏很大,3 秒内大约 30MB,并且具有恒定的速率。当我比较这段代码时,对我来说似乎很好。我已经搜索过这个,在 Gtk 应用程序中使用 pango 时发现了许多关于内存泄漏的引用,并且他们都在 pango 或 gtk 中寻找补丁。我真的很困惑,不敢相信在像 pango 这样的大量使用的库中会有这样的错误,并认为这是我自己的代码的问题。任何建议表示赞赏。
这是 Uli 代码的 vmmap 结果:
这是最后阶段的未过滤输出:
我省略了不可写区域部分,因为它溢出了 stackoverflow 限制!
cairo - cairocffi 使用 pango 引发错误
在这段代码的最后一行 cairocffi 给出了一个奇怪的错误
这里可能是什么问题?
c - C - Gtk3- Cairo - DrawArea - 平面笛卡尔 - 我如何添加文本?
我的目的(用于个人练习)是创建一个平面笛卡尔,我代表一些数学函数。因此我需要交易坐标,如何在 DrawArea 上添加文本?我进行了搜索,但没有找到关于使用 gtk3-C 绘制文本的任何内容(示例 ecc)。
其他,您是否有一些关于 DrawArea- Cairo-Pango 的教程指南或其他关于与 gtk3 一起使用的图形 2d-3d 的教程指南?
PS:我是初学者,但是为什么有人说 gtk/c 不好呢?只是因为更复杂?多谢你们
c - cairo draw_text 和在逐项行上的悬空指针?
我尝试使用 cairo 在屏幕上绘制文本,但 mac Os X 仪器告诉我,我有由 pango_layout_get_pixel_size 或 pango_layout_get_baseline 引起的悬空指针 ..实际上是第一个需要 PangoLines 并将它们存储在 Layout 变量中的函数。在文档和示例中显示的每个代码中,您都必须在最后使用 g_object_unref(layout) ......但仍然......那些由 itemized_state_init 分配的指针(在 pango_layout_get_pixel_size 内)没有被释放。
难道我做错了什么 ?
以及 Instrument 中的分配结果
感谢任何回复!
编辑:这是使用 G_SLICE=always-malloc G_DEBUG=gc-friendly 后的新屏幕截图。那些悬空的指针变成了“仪器”的漏洞
编辑(未找到解决方案):
我下载了 pango-1.40.3 的源代码,编译它并用我自己的标记安装它,我不明白为什么我在 MacOS 上有那些悬空指针,因为我正在经历:pango_layout_finalize和pango_layout_clear_lines和layout- >ref_count=0当我调用g_obejct_unref (布局)
python - 将 PangoCairo 与 PyGObject API 一起使用
我正在移植一个 Python2 脚本,该脚本使用 Pango 将文本绘制到开罗表面。pangocairo
使用带有包的旧 PyGtk API 可以正常工作。我的系统(Debian Jesse)没有用于 PyGtk 的 Python3 包,而是使用带有 PyGObject API 的较新的 Gtk+ 库。
我想创建一个pangocairo.CairoContext
对象,但新 API 中似乎缺少它。该PangoCairo
包有一个create_context()
功能,但它生成一个PangoContext
没有我需要的方法的对象。
到目前为止,我有这个:
有效的旧 Python2 代码:
有人对此有解决方案吗?是否有任何关于如何PangoCairo
与新 API 一起使用的好的文档?
gtk - 我可以在没有 gtk_init() / gtk_main() 的情况下使用 GtkTextView 小部件吗?
我目前使用 cairo/pango 从动态文本生成原始图像数据。我的应用程序不是 Gtk+ GUI 应用程序,只是本机 C++ 无头视频服务器。使用动态文本,我为叠加层生成原始图像,然后将它们与服务器处理并通过网络分发的视频流进行 alpha 混合。该文本不涉及文本编辑,但给定文本,我会生成适合 Alpha 混合的相应图像叠加层。
但是,我需要更多的格式灵活性(缩进、中心对齐等)。在 cairo/pango 中进行大量格式化是很痛苦的。
我一直在研究 GtkTextView/GtkTextBuffer API,我认为使用 GtkTextTag 更容易格式化。这些小部件显然具有广泛的编辑功能,但我只需要格式化功能。
问题:我可以在不通过 gtk_init()/gtk_main() 运行主 gtk+ 循环的情况下使用 GtkTextView/GtkTextBuffer/GtkTextTag吗?
问题:在所有标签都格式化文本后,如何获取对原始格式化缓冲区(cairo 图像表面或小部件 pixbuf)的引用?
我一直在使用 gtk_widget_get_pango_context()、pango_layout_new()、gtk_widget_create_pango_layout() 等例程,但由于没有屏幕而出现各种错误。
编辑:附加信息:我要做的基本上是仅使用 GtkTextView/GtkTextBuffer/GtkTextTag 例程作为一种独立库,用于生成渲染和格式化文本的图像数据。
谢谢,-安德烈斯