2015-03-12 2 views

ответ

1

Питон код, который вы связаны, кажется, не делать ничего другого от того, что программа 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. Если это так, вам нужно разделить логику рисования. В любом случае, надеюсь, что это поможет!

* Я предполагаю, что вы имели в виду cairo context или cairo surface. Шаблон - это просто определение того, как рисуется операция рисования; сохранение этого изображения несколько бессмысленно. (Вы можете создавать шаблоны из изображений, да, но это все еще не означает многого для сохранения.)

+0

OP, пожалуйста, ответьте на этот вопрос. Верно. – oldtechaa