Найти - Пользователи
Полная версия: cgi + python + ttf
Начало » Web » cgi + python + ttf
1
boltayka
Всем привет.. Вот набросал на питоне скриптик, выводящий png изображение со временем (пока-что только учусь).
#!/usr/bin/python

import Image, ImageFont, ImageDraw
import time
import cStringIO

def generate():
fontfile = "/arialbd.ttf"

words = [ ((10, 10), time.asctime()[11:19], "#ff0000", 30)]

# A fully transparent image to work on.
im = Image.new("RGB", (135, 55), (61,43,31))
dr = ImageDraw.Draw(im)
font = ImageFont.truetype(fontfile, 30)
dr.text((10,10), time.asctime()[11:20], font=font, fill=(245,245,220))
f = cStringIO.StringIO()
im.save(f, "PNG")

print "Content-type: image/png\n"
f.seek(0)
print f.read()

if __name__ == "__main__":
generate()
Естественно, вылезла ошибка 500.. На компе всё работает, на сервере - нет. После долгого вдупления в код понял - что проблема в шрифте (а точнее в строке fontfile = “/arialbd.ttf”)

Как можно указать? Пробовал и без слеша, и полный путь..
o7412369815963
тут есть рабочий пример вывода текста и выбора шрифта
boltayka
Пробовал этот метод, даже не изменяя (разве что впоследствии дописал #!/usr/bin/python) выдаёт ошибку 500…
Скрипт работает, т.к. другой пример (без текста) - http://lost-theory.org/python/dynamicimg.html у меня запускается
o7412369815963
трейсбек в студию…
может скрипт не может файл шрифтов открыть.

ЗЫ: и вообще кто хранит шрифты в корне ФС
boltayka
Так нету трейсбека =(( Только код ошибки… Одмин хоста - знакомый, сделал доступ к моим логам.. Там тоже написано только “Error 500”
Может его можно как-то в файл записать?
o7412369815963
у меня этот код работает с этой строкой:
    dr.text( (10,10), time.asctime()[11:20], font=font, fill=0xffff00)
o7412369815963
boltayka
Так нету трейсбека =(( Только код ошибки… Одмин хоста - знакомый, сделал доступ к моим логам.. Там тоже написано только “Error 500”
Может его можно как-то в файл записать?
трейсбек можно пулучить так:
try:
a = 5 / 0 # ТУТ ОШИБКА
except Exception as e:
print str(e)
в итоге на вывод поступит ошибка

можно ещё logging заюзать
o7412369815963
бросай cgi, юзай wsgi
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