问题标签 [cairo]

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.

0 投票
1 回答
304 浏览

makefile - GTK 2.9 编译(在 Lucid Lynx 上)需要什么 cairo?

我一直在尝试运行 configure 以在新的 Linux 机器(运行 Ubuntu 10.04 Lucid Lynx)上为 GTK 2,9 准备 make 文件。

它抱怨了一些依赖关系,包括:

  • glib-2.0
  • 攻击 (1.29.2)
  • 盘古 (1.20)
  • 开罗 (1.6)

我设法找到了 glib 2.22.0,下载了 atk 但还没有编译,还没有启动 pango,但是当我试图获取 cairo 包时,我不知道从哪里得到它!

GNU 站点上什么都没有,GTK 站点上没有!

有谁知道从哪里得到它?

0 投票
3 回答
11562 浏览

gtk - Cairo “在 pkg-config 搜索路径中找不到 libpng”

我正在尝试安装 GTK-DFB,而 cairo 是必需的。当我尝试从源代码构建它时,它会抛出:

想法?

谢谢

0 投票
1 回答
646 浏览

c++ - 在 WebKit 中禁用滚动条(平面框架模式)

我将 WebKit 嵌入到 Windows C++ 应用程序中。我正在使用开罗港口。它工作正常。

当客户区可以显示更多数据时,我想禁用出现的滚动条。和 iPhone 一样,iPhone 没有滚动条,滚动的实现方式不同。

如何在 C++ 中以编程方式禁用滚动条(无 Javascript hack)?


更新:

我试着打电话HRESULT IWebFrame::setAllowsScrolling(BOOL flag)。为了获得 IWebFrame 接口,我调用了HRESULT IWebView::mainFrame(IWebFrame **frame). 这似乎不起作用。滚动条仍然出现。我究竟做错了什么?这不是我主要感兴趣的主要框架吗?


更新:

我尝试启用这样的平面框架模式:

代码运行良好,但似乎没有任何反应。我在这里做错了什么?


更新:

我收到了在创建主窗口时可能包含 WS_VSCROLL 的建议。不是这种情况:

谢谢,

0 投票
1 回答
1373 浏览

graphics - 在开罗创建可变宽度笔触

Cairo 中的 stroke() 将单个指定宽度的笔画应用于线条路径。

我想绘制一条宽度不同的路径(用户绘制速度较快时较细,较慢时较粗)。在开罗这可能吗?

0 投票
4 回答
9330 浏览

python - 如何使用 CherryPy 在 HTTP 响应中返回图像

我有生成 Cairo 的代码ImageSurface,我像这样公开它:

这不起作用(浏览器报告图像有错误)。

我已经测试过它的surface.write_to_png('test.png')工作原理,但我不确定将数据转储到什么中以返回它。我猜是一些类似文件的对象?根据pycairo 文档get_data()返回一个缓冲区。我现在也尝试过:

另外,在内存中创建和保存这个图像(就像我正在尝试做的那样)或者将它作为临时文件写入磁盘并从那里提供它会更好吗?我只需要图像一次,然后可以将其丢弃。

0 投票
1 回答
1053 浏览

fonts - 跨平台获取可用字体列表的方法

我正在使用 Pango 和 Cairo。有没有一种简单的方法来获取可用字体列表?只要解决方案相当简单,我愿意使用另一个库。

0 投票
1 回答
2145 浏览

vector-graphics - 开罗掩蔽 - 我有什么遗漏吗?

所以我试图在开罗设置一个面具,但无法让它产生任何影响。下面我有一个基于这里的简单程序:http: //snipplr.com/view/22584/cairo-hello-world-examble/

我正在设置一个完全透明的蒙版,所以什么都不应该被绘制,但它似乎没有任何效果 - 文本仍然被绘制。我的代码如下。我错过了什么?

谢谢!

0 投票
1 回答
567 浏览

python - 重新绘制时放大到 Clutter CairoTexture

我正在使用 python-clutter 1.0

我的问题是挑战的形式

编写代码以允许通过按键放大到 CairoTexture 演员,在步骤中,可以(通过 cairo)重新绘制每个演员,以便图像保持高分辨率但仍按预期缩放,无需重新调整演员的大小。

想想 Inkscape 之类的东西,以及如何放大矢量;矢量如何在任何放大倍率下保持干净。将一条路径(例如一组 cairoline_to命令)放在 CairoTexture actor 上,然后让相同的技巧发生。

更多详情

我的目标是使用一组演员的小型 SVG 编辑器。每个演员都致力于一条道路。我通过使用“缩放”SomeGroup.set_depth(z)然后使 z 更大/更小。到目前为止一切都很好。然而,演员离相机越近,纹理被拉伸得越多以适应他们新的外观尺寸。

我似乎无法找到让 Clutter 做到这两点的方法:

  1. 让演员的实际尺寸保持不变(即开始时的尺寸。)
  2. 将其底层表面换成较大的表面(放大时),然后我可以将路径重新绘制到上面(并使用 cairo 矩阵来执行上下文的缩放。)

如果我使用set_sizeor set_surface_size,演员会变,这是不希望的。我只希望它的表面(基础数据)变得更大。

(我不确定这个术语,也许是 mipmapping?)

换句话说:多边形越来越大,增加其纹理数组的大小,以便它可以映射到更大的多边形上。

我什至尝试过通过保持第二个表面(使用 pycairo)来结束混乱,将其重新创建为演员的表观大小(get_transformed_size),然后我使用混乱set_from_rgb_data并将其指向我的第二个表面,强制重新表面的大小,但不是演员的尺寸。

这样做的问题是a)混乱忽略了新的尺寸,只吸收了旧的宽度/高度,b)RGBA 与 ARGB32 的东西会导致颜色崩溃。

我对任何替代想法持开放态度,我希望我站在树林里想念所有的树!

\d

0 投票
9 回答
109694 浏览

python - 如何在 matplotlib / Python 中更改后端

我正在努力解决以下问题。我需要生成包含一组图表的报告。所有这些图表,除了一个,都是使用 Matplotlib 默认后端(TkAgg)制作的。需要使用 Cairo 后端制作一个图表,原因是我正在绘制一个 igraph 图,并且只能使用 Cairo 绘制。

问题是我不能即时更改后端,例如以下不起作用:(
matplotlib.pyplot.switch_backend('cairo.png') 我知道 switch_backend 功能是实验性的)

而且我也尝试过matplotlib.use("cairo.png"),但这会导致导入问题,因为该matplotlib.use("cairo.png")语句应该在导入之前出现matplotlib.pyplot。但在脚本的整个生命周期中,我需要两个不同的后端。

所以我的问题是有人有一个代码片段来显示如何在 Matplotlib 中切换后端?

非常感谢!

更新:我写了一个片段,加载 matplotlib,显示默认后端,卸载 matplotlib,重新加载它并更改后端:

但这真的是这样做的方法吗?

更新 2:我昨天有一些严重的大脑冻结......简单和最明显的解决方案是对所有图表使用 Cairo 后端,并且根本不切换后端 :)

更新 3:实际上,这仍然是一个问题,所以任何知道如何动态切换 matplotlib 后端的人......请发布您的答案。

0 投票
1 回答
162 浏览

c - 开罗分割图像

在我的 gtk+ 应用程序中,我需要以高分辨率分割图像。我怎么能用开罗呢?我在哪里可以找到示例?

谢谢