
Untitled
By: a guest on
Jun 17th, 2012 | syntax:
None | size: 1.44 KB | hits: 31 | expires: Never
#/project/appname/templatetags/qrcode.py
from __future__ import absolute_import
import Image
import hashlib
import os
from ..lib.PyQRNative import *
from django import template
from django.conf import settings
from django.http import QueryDict
register = template.Library()
QRCODESURL = os.path.join("img", "qrcode")
QRCODESPATH = os.path.join(settings.STATIC_ROOT, QRCODESURL)
@register.filter(name="qrcode")
def qrcode(value,args):
query_string = QueryDict(args)
m = hashlib.md5()
m.update(value)
md5 = m.hexdigest()
if query_string.has_key('pixel_size') :
pixel_size=int(query_string.get('pixel_size'))
else:
pixel_size=4
if query_string.has_key('canvas_margin') :
canvas_margin=int(query_string.get('canvas_margin'))
else:
canvas_margin=10
if query_string.has_key('border_size') :
border_size=int(query_string.get('border_size'))
else:
border_size=10
qrCodeObject = QRCode(pixel_size, QRErrorCorrectLevel.L)
qrCodeObject.addData(value)
qrCodeObject.make()
filename = "%s.png" % md5
filepath = QRCODESPATH
if not os.path.exists( filepath ):
os.makedirs(filepath)
qrCodeImage = qrCodeObject.makeImage(pixel_size = pixel_size, canvas_margin = canvas_margin, border_size = border_size)
# qrCodeImage = qrCodeObject.makeImage(*query_string)
qrCodeImage.save( os.path.join(filepath, filename) )
return "%s/%s" % (QRCODESURL,filename)