Chcę wstawić obraz do ramki. I znaleziono dwa sposoby, aby to zrobić:Proporcje obrazu za pomocą Reportlab w języku Python
- drawImage (samo, obraz, X, Y, szerokość = None, wysokość = None, maska = None, preserveaspectratio = False, kotwica = 'c')
- obrazu (nazwa pliku, szerokość = brak, wysokość = brak)
Moje pytanie brzmi: jak mogę dodać obraz w ramce przy zachowaniu proporcji?
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()
Dziękujemy za obejście tego problemu. Mam nadzieję, że ktoś doda to do API. – citn
To jest najlepsza odpowiedź na to pytanie. Są podobne pytania, które powinniśmy włączyć do tego. – jimh