- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何将 gtk_drawing_area 或 cairo 上下文的内容保存到磁盘?
类似于这个(Python)问题:Save the contents of a Gtk.DrawingArea or Cairo pattern to an image on disk
但在 C 语言中。
最佳答案
您链接的Python代码似乎与C程序没有什么不同;您只需要查找等效的 C 方法,例如 gdk_pixbuf_savev()
.
但是,因为您最初的问题是 cairo pattern*,所以我想您推断出,由于您编写了 GtkDrawingArea draw
信号处理程序的实现,因此您可以重用该代码来绘制图像。你是对的。
在这种情况下,您首先要创建 an image surface然后a cairo_t
from that surface 。将其传递给您的绘图函数,然后 you can save the surface to a PNG 。 Here's an example (from the Pango documentation).
当然,这假设您的 draw
处理程序的编写方式不使用 GtkDrawingArea 或 data
参数。如果是这样,您需要将实际的绘图逻辑分开。不管怎样,希望能有所帮助!
*我假设您指的是开罗上下文或开罗表面。模式只是绘图操作如何绘制的定义;将其保存到图像中有点没有意义。 (是的,您可以用图像创建图案,但这对于保存来说仍然没有多大意义。)
关于c - 将 gtk_drawing_area 或 Cairo 图案的内容保存到磁盘上的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29003012/
如何将 gtk_drawing_area 或 cairo 上下文的内容保存到磁盘? 类似于这个(Python)问题:Save the contents of a Gtk.DrawingArea or
我是一名优秀的程序员,十分优秀!