Code: Alles auswählen
import Image, ImageDraw, ImageFont
from random import choice
def createCaptcha():
imgtext = ''.join([choice('QWERTZUPASDFGHJKLYXCVBNM') for i in range(5)])
img = Image.open('captcha_bg.jpg')
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('captcha_font.ttf', 50)
draw.text((10,10), imgtext, font = font, fill=(0,0,0))
img.save('captcha.jpg')
createCaptcha()
Dann soll das neue Bild gespeichert werden.
Funktioniert - aber eben nur manchmal .. ist mir unbegreiflich warum.
Ich bekomme folgende Fehlermeldung, wenn es nicht klappt:
[/code]/usr/bin/python -u "/home/julian/Desktop/captcha.py"
*** glibc detected *** /usr/bin/python: double free or corruption (out): 0x081da618 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb7e658bd]
/lib/tls/i686/cmov/libc.so.6(__libc_free+0x84)[0xb7e65a44]
/usr/lib/python2.4/site-packages/PIL/_imaging.so[0xb7d25ff4]
/usr/lib/python2.4/site-packages/PIL/_imaging.so(ImagingDelete+0x39)[0xb7d26089]
/usr/lib/python2.4/site-packages/PIL/_imaging.so[0xb7d062e5]
/usr/bin/python[0x8100cee]
/usr/bin/python(PyEval_EvalCodeEx+0x313)[0x80b9f93]
/usr/bin/python(PyEval_EvalFrame+0x404a)[0x80b86ea]
/usr/bin/python(PyEval_EvalFrame+0x46f4)[0x80b8d94]
/usr/bin/python(PyEval_EvalCodeEx+0x839)[0x80ba4b9]
/usr/bin/python(PyEval_EvalCode+0x57)[0x80ba527]
/usr/bin/python(PyRun_FileExFlags+0xca)[0x80ddb1a]
/usr/bin/python(PyRun_SimpleFileExFlags+0x187)[0x80ddd07]
/usr/bin/python(Py_Main+0xa82)[0x8055cc2]
/usr/bin/python(main+0x22)[0x8055132]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc)[0xb7e148cc]
/usr/bin/python[0x8055081]
======= Memory map: ========
08048000-08121000 r-xp 00000000 03:02 649805 /usr/bin/python2.4
08121000-08142000 rw-p 000d8000 03:02 649805 /usr/bin/python2.4
08142000-08204000 rw-p 08142000 00:00 0 [heap]
b7a00000-b7a21000 rw-p b7a00000 00:00 0
b7a21000-b7b00000 ---p b7a21000 00:00 0
b7b7a000-b7b84000 r-xp 00000000 03:02 1038403 /lib/libgcc_s.so.1
b7b84000-b7b85000 rw-p 00009000 03:02 1038403 /lib/libgcc_s.so.1
b7b90000-b7bfa000 r--p 00000000 03:03 868184 /home/julian/Desktop/captcha_font.ttf
b7bfa000-b7c61000 r-xp 00000000 03:02 650424 /usr/lib/libfreetype.so.6.3.10
b7c61000-b7c64000 rw-p 00067000 03:02 650424 /usr/lib/libfreetype.so.6.3.10
b7c6f000-b7c72000 r-xp 00000000 03:02 909431 /usr/lib/python2.4/site-packages/PIL/_imagingft.so
b7c72000-b7c73000 rw-p 00002000 03:02 909431 /usr/lib/python2.4/site-packages/PIL/_imagingft.so
b7c73000-b7cb4000 rw-p b7c73000 00:00 0
b7cb6000-b7cba000 r-xp 00000000 03:02 780008 /usr/lib/python2.4/lib-dynload/binascii.so
b7cba000-b7cbb000 rw-p 00003000 03:02 780008 /usr/lib/python2.4/lib-dynload/binascii.so
b7cbb000-b7cbe000 r-xp 00000000 03:02 780025 /usr/lib/python2.4/lib-dynload/math.so
b7cbe000-b7cbf000 rw-p 00002000 03:02 780025 /usr/lib/python2.4/lib-dynload/math.so
b7cbf000-b7cc3000 r-xp 00000000 03:02 780029 /usr/lib/python2.4/lib-dynload/operator.so
b7cc3000-b7cc4000 rw-p 00004000 03:02 780029 /usr/lib/python2.4/lib-dynload/operator.so
b7cc4000-b7cc8000 r-xp 00000000 03:02 780039 /usr/lib/python2.4/lib-dynload/strop.so
b7cc8000-b7cca000 rw-p 00003000 03:02 780039 /usr/lib/python2.4/lib-dynload/strop.so
b7cca000-b7cdd000 r-xp 00000000 03:02 650954 /usr/lib/libz.so.1.2.3
b7cdd000-b7cde000 rw-p 00012000 03:02 650954 /usr/lib/libz.so.1.2.3
b7cde000-b7cfc000 r-xp 00000000 03:02 650690 /usr/lib/libjpeg.so.62.0.0
b7cfc000-b7cfd000 rw-p 0001d000 03:02 650690 /usr/lib/libjpeg.so.62.0.0
b7cfd000-b7d2e000 r-xp 00000000 03:02 909430 /usr/lib/python2.4/site-packages/PIL/_imaging.so
b7d2e000-b7d31000 rw-p 00031000 03:02 909430 /usr/lib/python2.4/site-packages/PIL/_imaging.so
b7d31000-b7d39000 rw-p b7d31000 00:00 0
b7d39000-b7d40000 r--s 00000000 03:02 665864 /usr/lib/gconv/gconv-modules.cache
b7d40000-b7d7b000 r--p 00000000 03:02 698734 /usr/lib/locale/de_DE.utf8/LC_CTYPE
b7d7b000-b7dff000 rw-p b7d7b000 00:00 0
b7dff000-b7f2c000 r-xp 00000000 03:02 1070812 /lib/tls/i686/cmov/libc-2.4.so
b7f2c000-b7f2e000 r--p 0012c000 03:02 1070812 /lib/tls/i686/cmov/libc-2.4.so
b7f2e000-b7f30000 rw-p 0012e000 03:02 1070812 /lib/tls/i686/cmov/libc-2.4.so
b7f30000-b7f33000 rw-p b7f30000 00:00 0
b7f33000-b7f57000 r-xp 00000000 03:02 1070816 /lib/tls/i686/cmov/libm-2.4.so
b7f57000-b7f59000 rw-p 00023000 03:02 1070816 /lib/tls/i686/cmov/libm-2.4.so
b7f59000-b7f5b000 r-xp 00000000 03:02 1070831 /lib/tls/i686/cmov/libutil-2.4.so
b7f5b000-b7f5d000 rw-p 00001000 03:02 1070831 /lib/tls/i686/cmov/libutil-2.4.so
b7f5d000-b7f5f000 r-xp 00000000 03:02 1070815 /lib/tls/i686/cmov/libdl-2.4.so
b7f5f000-b7f61000 rw-p 00001000 03:02 1070815 /lib/tls/i686/cmov/libdl-2.4.so
b7f61000-b7f70000 r-xp 00000000 03:02 1070826 /lib/tls/i686/cmov/libpthread-2.4.so
b7f70000-b7f72000 rw-p 0000f000 03:02 1070826 /lib/tls/i686/cmov/libpthread-2.4.so
b7f72000-b7f75000 rw-p b7f72000 00:00 0
b7f75000-b7f77000 r-xp 00000000 03:02 780001 /usr/lib/python2.4/lib-dynload/_random.so
b7f77000-b7f78000 rw-p 00002000 03:02 780001 /usr/lib/python2.4/lib-dynload/_random.so
b7f78000-b7f7e000 r-xp 00000000 03:02 780006 /usr/lib/python2.4/lib-dynload/array.so
b7f7e000-b7f80000 rw-p 00006000 03:02 780006 /usr/lib/python2.4/lib-dynload/array.so
b7f80000-b7f81000 rw-p b7f80000 00:00 0
b7f81000-b7f9a000 r-xp 00000000 03:02 1038527 /lib/ld-2.4.so
b7f9a000-b7f9c000 rw-p 00018000 03:02 1038527 /lib/ld-2.4.so
bf9e1000-bf9fb000 rw-p bf9e1000 00:00 0 [stack]
ffffe000-fffff000 ---p 00000000 00:00 0 [vdso]