问题标签 [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 回答
1047 浏览

python - 开罗的大图像

我必须用 cairo 渲染一个非常大的图像(>50.000² 像素)。为了在不耗尽内存的情况下做到这一点,我一个接一个地渲染图像的一部分(<1.000² 像素),然后将它们合并在一起。

  1. 创建 1000x1000 曲面
  2. 平移到当前零件的位置
  3. 绘制图像(使用pycairo调用绘图指令)
  4. 渲染/保存图像到文件 (cairo_surface_write_to_png)
  5. 重复下一部分

因为 cairos 裁剪算法比我自己的要快,所以第三步绘制了整个图像,即使它只有一部分是可见的。大部分 CPU 用于第 3 步(通过 python)。大部分内存用于第 4 步(由 cairo)。

有没有办法加快速度?像这样的东西?

  1. 创建 1000x1000 曲面
  2. 绘制图像
  3. 将所有内容移动到当前部分的位置
  4. 渲染/保存图像到文件
  5. 对下一部分重复 3

或者

  1. 创建 50000x50000 曲面
  2. 绘制图像
  3. 仅将图像的当前部分渲染/保存到文件
  4. 对下一部分重复 3
0 投票
2 回答
792 浏览

python - 是否有用于轻松编写可缩放 UI 的 Python 库?

我的下一个工作将主要集中在处理在二维可缩放平面或画布上组织时最容易理解的数据,而不是使用列表和属性表单。

该库可以基于 OpenGL、GTK+ 或 Cairo。它应该允许我:

  • 用矢量形状和文本构建小部件(甚至可能基于 SVG?)
  • 将这些小部件排列在 2D 平面上
  • 捕获与小部件相关的事件
  • 深入放大小部件以显示其他数据
  • 在树中排列小部件
  • 流畅地动画小部件

如果它也允许一些数据绑定或模型/视图概念,那也不会受到伤害。

0 投票
1 回答
1129 浏览

python - 将 PyCairo 渲染到 PyOpenGL 表面?

我最近开始玩 pycairo - 将它渲染到 pyopengl 表面是否足够容易(例如在立方体的一侧?)......我的 opengl 真的不存在,所以我不确定最好的方法去吧。

0 投票
2 回答
1348 浏览

graphics - 开罗路径上的布尔运算?

有没有办法在开罗通过布尔运算(例如 Union、Difference 和 Intersection)将两条路径组合在一起来构建路径?我正在开发一个矢量图形应用程序,该应用程序使用 Cairo 进行渲染,并希望让我的用户能够以这种方式将路径组合在一起,但我在 Cairo 找不到方法。

0 投票
3 回答
3904 浏览

python - 在 Gtk+ 中绘制图像的最快方法是什么?

我有一个要绘制到 gtk.DrawingArea 中并经常刷新的图像/pixbuf,因此 blitting 操作必须很快。以简单的方式做到这一点:

但是会导致性能非常缓慢,这可能是由于 pixbuf 不是显示颜色格式造成的。

我在开罗也没有成功,因为它似乎仅限于 24/32 位格式并且没有 16 位格式(不支持和弃用 FORMAT_RGB16_565)。

在 Gtk+ 中快速绘制图片有哪些替代方法?

0 投票
3 回答
417 浏览

c - 如何从一系列 cairo 画布轻松地在 c 中创建视频?

我正在用 c 为大学写一些物理模拟,现在我输出了一系列数百个 png,然后我以快速顺序观看......有没有办法用一些简单的无损编解码器库将它们合并到 c 中的视频?

PS 我正在使用 cairo 图形,并且通常在图形编程方面经验很少

0 投票
2 回答
7071 浏览

python - 如何使用 librsvg Python 绑定调整 svg 图像文件的大小

栅格化 svg 文件时,我希望能够为生成的 png 文件设置宽度和高度。使用以下代码,仅将画布设置为所需的宽度和高度,具有原始 svg 文件尺寸的实际图像内容呈现在 (500, 600) 画布的左上角。

我应该怎么做才能使图像内容与 cairo 画布大小相同?我试过了

但得到了

此外,librsvg python 绑定的文档似乎极为罕见,只有 cairo 网站上的一些随机代码片段。

0 投票
1 回答
2004 浏览

c++ - 让 Cairo 图形与 MFC 一起工作的小例子?

我有一些旧版 MFC 应用程序,我想使用 Cairo 绘图引擎添加一些图表和图形。

我正在寻找一个如何让它工作的小例子。基本上,一旦我创建了一个 PNG 或 GIF 文件,我如何让它显示在 MFC CView 窗口中?

我的 google-fu 没有找到任何好的线索。

0 投票
5 回答
9275 浏览

c++ - C/C++ 中的 svg 示例

有人可以提供一个如何加载 .svg 文件并使用 C/C++ 和任何库显示它的示例吗?我想知道您是否会使用 SDL、cairo 或什么。

0 投票
6 回答
17426 浏览

python - 如何在 osx 上安装 pycairo?

我正在尝试在 OSX 下安装pycairocairo 图形库的 Python 绑定)。

我从

并得到:

所以我去了 cairo 的网站并下载了 cairo 的最新包(1.8.8),以及名为 pixman 的最新包(两个源包——找不到 osx 二进制文件)

将两者都解压缩,每个都在自己的目录中。对于 pixman,常规./configure ; make ; sudo make install工作只是为 cairo 找到,./configure 似乎工作,但 make 失败:

我究竟做错了什么?

为什么我必须如此努力才能让软件库在“正常工作”的操作系统上工作?为什么达尔文不像linux?