[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