Найти - Пользователи
Полная версия: pyGTK: как сохранить нарисованное в DrawingArea в файл
Начало » GUI » pyGTK: как сохранить нарисованное в DrawingArea в файл
1
jozheg
Недавно начал изучать PyGTK. Сейчас передо мной встала следующая проблема:
у меня есть ScrolledWindow с Viewport с DrawingArea, в которой я рисую с помощью cairo.
Хотелось бы сохранить нарисованное в файл, однако как сделать, чтобы сохранилось все изображение (а не только та часть, которая видна в Viewport), я не догадался.
leonid_10
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
cr = cairo.Context(surface)

код того, что нарисовал

surface.write_to_png('curve_1.png')
jozheg
leonid_10
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
cr = cairo.Context(surface)

код того, что нарисовал

surface.write_to_png('curve_1.png')
Спасибо большое.
А не подскажете ли как рисовать одновременно и в области DrawingArea (чтобы не делать это отдельно для сохранения и отображения), т.е. как по-простому прикрепить этот CairoContext к DrawingArea.
leonid_10
jozheg
А не подскажете ли как рисовать одновременно и в области DrawingArea (чтобы не делать это отдельно для сохранения и отображения), т.е. как по-простому прикрепить этот CairoContext к DrawingArea.
Я не знаю. Я использую wx. Хотя, насколько я смог вникнуть, GTK имеет такую возможность. Посмотрите демки PyGame, там каиро рисует в окне и сохраняет в одной функции. Какая-то строчка должна превратить DrawingArea в surface
Мне не понравилась GTK как раз отсутствием информации о работе с графикой. Wx, напротив, имеет кучу примеров и мощный инструмент GCDC - помимо рисования можно так же и конвертировать в несколько форматов картинки. Я могу рисовать с помощью каиро, а картинки при этом получать GIF, JPG
Chrizt
попробуйте:
im = cr.get_target()
im.write_to_png("1.png")
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB