Quiero insertar una imagen dentro de un marco. He encontrado dos maneras de hacer esto:Proporción de aspecto de imagen con Reportlab en Python
- drawImage (auto, imagen, x, y, width = Ninguno, altura = Ninguno, máscara = Ninguno, preserveAspectRatio = False, ancla = 'c')
- Imagen (nombre del archivo, ancho = Ninguno, alto = Ninguno)
Mi pregunta es: ¿cómo puedo agregar una imagen en un marco conservando su relación de aspecto?
from reportlab.lib.units import cm
from reportlab.pdfgen.canvas import Canvas
from reportlab.platypus import Frame, Image
c = Canvas('mydoc.pdf')
frame = Frame(1*cm, 1*cm, 19*cm, 10*cm, showBoundary=1)
"""
If I have a rectangular image, I will get a square image (aspect ration
will change to 8x8 cm). The advantage here is that I use coordinates relative
to the frame.
"""
story = []
story.append(Image('myimage.png', width=8*cm, height=8*cm))
frame.addFromList(story, c)
"""
Aspect ration is preserved, but I can't use the frame's coordinates anymore.
"""
c.drawImage('myimage.png', 1*cm, 1*cm, width=8*cm, preserveAspectRatio=True)
c.save()
Gracias por esta solución. Espero que alguien agregue esto a la API. – citn
Esta es la mejor respuesta a esta pregunta. Hay preguntas similares en las que deberíamos fusionarnos en esta. – jimh