Download raw (1.7 KB)
import subprocess
import tempfile
from bottle import (run, template, get, post, request, response)
@get('/')
def form():
return template("templates/form")
@get('/logo.<filetype:re:(png|eps)>')
def preview(filetype):
download = request.query.get('download')
thickness = request.query.get('thickness', 0.7)
period = request.query.get('period', 2.1)
color = request.query.get('color')
if color:
red = float(int(color[1:3], 16)) / 255
green = float(int(color[3:5], 16)) / 255
blue = float(int(color[5:7], 16)) / 255
else:
red = 0
green = 0
blue = 0
context = dict(red=red, green=green, blue=blue, period=period, thickness=thickness)
if filetype == "png":
f = tempfile.NamedTemporaryFile(delete=True, suffix=".eps")
f.write(template("templates/logo", **context))
f.seek(0)
args = [
"gs",
"-q",
"-dNOPAUSE", "-dBATCH", "-dSAFER",
"-dEPSCrop",
"-sDEVICE=png16m",
"-dGraphicsAlphaBits=4",
"-dTextAlphaBits=4",
"-sOutputFile=-",
"-"
]
output = subprocess.check_output(args, stdin=f)
f.close()
if download:
response.headers["Content-Disposition"] = "attachment; filename=\"logo.png\""
response.content_type = 'image/png'
else:
output = template("templates/logo", **context)
if download:
response.headers["Content-Disposition"] = "attachment; filename=\"logo.eps\""
response.content_type = 'image/x-eps'
return output
if __name__ = "__main__":
run(host='localhost', port=8080, reloader=False)