Найти - Пользователи
Полная версия: Как подключить к сайту динамическое изображение?
Начало » Web » Как подключить к сайту динамическое изображение?
1
digi
Я новичок в питоне, пока знаний и практики совсем мало, так что не пинайте. Подскажите направление, как примерно реализовать такую вещь. Есть (вернее будет) на хостинге скрипт на питоне, он будет динамически генерировать картинку постоянного размера. Как писать на питоне такой скрипт, я уже примерно представляю, вопрос у меня в другом: как сделать, чтобы при запросе по URL вроде
http://адрес_сайта.ru/dir/123456
подключался и срабатывал мой питоновый скрипт? Скрипт будет принимать цифры из URL в качестве параметра и в засисимости от их значений выдавать картинку. Спасибо.

fata1ex
Посмотрите на flask.
EBFE
http://pypi.python.org/pypi/bottle/
хотя и на flask будет очень похоже

#! /usr/bin/env python
# -*- coding: utf-8 -*-
from bottle import route, run, debug, HTTPResponse
from PIL import ImageFont, Image, ImageDraw
from cStringIO import StringIO
#
BG_COLOR = (255, 192, 203)
debug(True)  # bottle debug mode
FONT = ImageFont.truetype('verdana.ttf', 70)
#
#
@route('/')
@route('/:param')
def index(param='World'):
    return 'Hello/' + param
#
#
@route('/nums/')
@route('/nums/<num:int>')
def nums(num=42):
    img_text = Image.new('RGBA', (200, 200), BG_COLOR)
    draw = ImageDraw.Draw(img_text)
    draw.text((0, 0), str(num), fill=(0, 0xff, 0), font=FONT)
    img_text = img_text.rotate(45, expand=True)
    img_file = StringIO()
    img_text.save(img_file, 'PNG', optimize=True)
    body = img_file.getvalue()
    return HTTPResponse(body, header={'Content-Type': 'image/png'})
#
run(host='localhost', port=8000, reloader=True)
digi
fata1ex, EBFE, спасибо за интересные предложения. Вы мне просто открыли глаза, а то я по старым своим стереотипам полагал, что придется делать через .htaccess и mod_rewrite, направляя на скрипт и передавая ему параметры. А всё оказывается значительно интереснее, чем думал, теперь будет материал для пережевывания.

P.S. если возникнут ещё какие-то мысли по сабжу, буду рад если поделитесь.
Singularity
@route('/nums/<num:int>')
это регулярка ?
EBFE
это регулярка ?
А что, похоже?
http://flask.pocoo.org/docs/quickstart/#routing
http://bottlepy.org/docs/dev/routing.html#wildcard-filters


По теме:
не забыть убрать
debug(True)  # bottle debug mode

ну и прикрутить к чему-то “серьезному” все таки придется
Bottle runs on the built-in wsgiref WSGIServer by default. This non-threading HTTP server is perfectly fine for development and early production, but may become a performance bottleneck when server load increases.
Тут все неплохо описанно:
http://bottlepy.org/docs/dev/deployment.html
digi
Еще подскажите насчет вывода динамического изображения. Изображение будет представлять собой некое число, динамически формируемое. Это число состоит из разрядов, каждый из которых является цифрой, выводимой на небольшом фоновом изображении.

Вопрос: как эффективней поступить:

1. в процессе вывода картинки заново отрисовывать каждый разряд и складывать из них изображение
или
2. вид каждой цифры на фоне сохранить в отдельный файл, и затем при выдаче общего изображения просто формировать общую картинку, считывая каждый разряд из соответствующего файла с сохраненным изображением цифры

Может знатокам этот вопрос и покажется очевидным, прошу не пинать.
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