[pyar] Generando imagenes Dinamicas con templates
Felipe Lerena
felipelerena en gmail.com
Mie Mayo 29 19:15:44 ART 2013
Hola,
Tengo un problema que me está costando solucionar, quiero encontrar una
solucion ideal a un problema tipico que todos tenemos.
Tengo un programa que genera imagenes dinamicas usando PIL y tiene 3
posibles outputs:
1) cuando termina hago un Image.getdata() que me devuelve los bits de
color para mandarle el stream a una impresora
2) lo guardo a disco para mostrarlo en pantalla en un browser
3) 1 y 2 juntas.
El problema es que generar las imagenes con PIL resulta en un codigo
feo, dificil de mantener y lento. Ademas de que tengo que sacarlo a 2
outputs diferentes. Tambien hay un problema de que con PIL no puedo
hacer cosas obvias como centrar texto ni wrappear palabras para hacerlo
multilinea.
Mi idea es/era usar SVG. Porque?
1) Webkit lo lee automaticamente y no necesito pasarlo a un PNG para
base64 encodearlo para meterlo en el browser
2) Esta bueno laburar con vectores
3) Puedo templatear con Jinja y tener mucho menos codigo :D
Cual es el problema de usar SVG?
1) el posicionamiento es relativo, o sea que los templates no pueden ser
realmente dinamicos ya que tengo que setear que va en cada lugar en vez
de "empujar" como en HTML.
2) no wrapea texto a menos que el renderer tenga soporte para embeber
XML (ningun renderer de SVG que no sea un browser lo soporta) o sea que
basicamente tengo que con python separar las lineas por el ancho que
creo que van a ocupar e iterar sobre las mismas para generar el SVG...
3) no puedo hacer algo como el getdata() directamente, tengo que pasar
por cairosvg y hacer algo asi:
file_= StringIO()
PNGSurface.convert(bytestring=mi_xml, write_to=file_)
file_.seek(0)
img = Image.open(file_)
img.save("/tmp/pngcopado.png")
data = img.getdata()
O sea, estoy en la misma... por que tengo que pasar por PIL
Tambien probé hacerlo con pyCairo, por ejemplo, pero estoy en las mismas.
Tiene que haber algo copado, liviano y potente que me permita hacer
templates dinamicos para generar imagenes. Tendria que ser en un
lenguaje de markup liviano y que ademas sea rapido!
Alguien se le ocurre algo?
Saludos,
Lipe
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130529/cca0ca39/attachment.sig>
More information about the pyar
mailing list