7 import urllib
, Image
, StringIO
12 _xml
= 'captcha.glade'
14 self
.widgets_tree
= gtk
.glade
.XML( _xml
)
16 'enter_captcha_clicked_cb':self
.return_val
,
17 'text_captcha_activate_cb':self
.return_val
,
19 self
.widgets_tree
.signal_autoconnect( events_connect
)
20 window
= self
.widgets_tree
.get_widget( _window
)
22 window
.connect("destroy", gtk
.main_quit
)
23 self
.captcha
= self
.widgets_tree
.get_widget( 'captcha' )
24 self
.text_captcha
= self
.widgets_tree
.get_widget( 'text_captcha' )
25 def get_img(self
, url
):
26 src_img
= StringIO
.StringIO( urllib
.urlopen(url
).read() )
27 img
= Image
.open(src_img
)
28 #file1 = StringIO.StringIO()
29 img
.save( 'captcha_img', img
.format
)
30 self
.captcha
.set_from_file('captcha_img')
32 contents = file1.getvalue()
34 loader = gtk.gdk.PixbufLoader('pnm')
35 loader.write( contents, len(contents) )
36 pixbuf = loader.get_pixbuf()
39 self.captcha.set_from_pixbuf(pixbuf)
41 def return_val(self
, widget
):
43 print self
.text_captcha
.get_text()
50 if __name__
== "__main__":
53 #app.get_img('http://spamavert.com/images/logo.spamavert.com.jpg')
54 app
.get_img(sys
.argv
[1])
61 def image_to_pixbuf(image):
62 fd = StringIO.StringIO()
64 contents = fd.getvalue()
66 loader = gtk.gdk.PixbufLoader("pnm")
67 loader.write(contents, len(contents))
68 pixbuf = loader.get_pixbuf()
72 image = PIL.Image.open("example.png")
73 pixbuf = image_to_pixbuf(image)
75 image.set_from_pixbuf(pixbuf)