Add a template filter for displaying signature as base64

This commit is contained in:
Sebastien Corbin
2020-07-26 14:59:56 +02:00
committed by Sébastien Corbin
parent 4dd9e5f25f
commit bea517d746
4 changed files with 41 additions and 0 deletions

View File

View File

@@ -0,0 +1,21 @@
import base64
import io
from django import template
from django.utils.encoding import iri_to_uri
from jsignature.utils import draw_signature
register = template.Library()
@register.filter
def signature_base64(value):
if value is None or not isinstance(value, str):
return ""
in_mem_file = io.BytesIO()
draw_signature(value).save(in_mem_file, format="PNG")
in_mem_file.seek(0)
return "data:image/png;base64,{}".format(
iri_to_uri(base64.b64encode(in_mem_file.read()).decode('utf8'))
)