2010-07-15 3 views
1

gtk.DrawingArea() 객체의 내용을 PIL을 사용하여 jpeg 파일에 저장하려고합니다. 특히 나는 사진을 만들 수있는 가능성을 this script에 추가하고 싶다. 나는 save image to jpeg하는 방법을 발견했다. 내가 필요한 것은 - gtk.DrawingArea() 객체에서 pixbuf 객체를 얻는 것이다. 어떻게해야합니까?gtk.DrawingArea를 파일에 저장

답변

2

gstreamer를 사용하지 않을 경우 대신 OpenCV를 사용할 수 있습니다. This post은 파이 게임 (pygame)을 사용한 좋은 예입니다.

def get_picture(self, event, data): 
    drawable = self.movie_window.window 
    colormap = drawable.get_colormap() 
    pixbuf = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, 0, 8, *drawable.get_size()) 
    pixbuf = pixbuf.get_from_drawable(drawable, colormap, 0,0,0,0, *drawable.get_size()) 
    pixbuf.save(r'somefile.png', 'png') 
    pixbuf.save(r'somefile.jpeg', 'jpeg') 

을하고 그냥 버튼을 만들고 get_picture에 명령을 바인딩 :

그러나, 당신은 (그리고 당신도 PIL 필요하지 않습니다)에 pixbuf이 방법을 얻을 수 있습니다. 물론

, 나는이 프로그램을 실제로 처음에 Image에 이미지를 잡아 다음 gtk.DrawingArea에 그릴 것 쓰고 있다면 - 당신이 fun things의 모든 종류를 수행 할 수있다.