Форум сайта python.su
Недавно начал изучать PyGTK. Сейчас передо мной встала следующая проблема:
у меня есть ScrolledWindow с Viewport с DrawingArea, в которой я рисую с помощью cairo.
Хотелось бы сохранить нарисованное в файл, однако как сделать, чтобы сохранилось все изображение (а не только та часть, которая видна в Viewport), я не догадался.
Офлайн
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
cr = cairo.Context(surface)
код того, что нарисовал
surface.write_to_png('curve_1.png')
Офлайн
leonid_10Спасибо большое.
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
cr = cairo.Context(surface)
код того, что нарисовал
surface.write_to_png('curve_1.png')
Офлайн
jozhegЯ не знаю. Я использую wx. Хотя, насколько я смог вникнуть, GTK имеет такую возможность. Посмотрите демки PyGame, там каиро рисует в окне и сохраняет в одной функции. Какая-то строчка должна превратить DrawingArea в surface
А не подскажете ли как рисовать одновременно и в области DrawingArea (чтобы не делать это отдельно для сохранения и отображения), т.е. как по-простому прикрепить этот CairoContext к DrawingArea.
Офлайн
попробуйте:
im = cr.get_target()
im.write_to_png("1.png")
Офлайн