Python: Wie man die Größe Rasterbild mit PyQt
Muss ich einen Weg finden, um die Größe einer Eingabe-raster-Bild (z.B. jpg) auf eine bestimmte Breite/Höhe Auflösung (in Pixel). Es wäre toll, wenn PyQt während der Größenänderung ein neues Bild halten würde, ein original Bild, das Seitenverhältnis (es gibt also keine Dehnung, aber skalieren nur).
src = '/Users/usrName/Images/originalImage.jpg' (2048x1024) (rechteckiges Bild im Verhältnis 2:1)
dest= '/Users/usrName/Images/originalImage_thumb.jpg' (64x64) (Ausgabe Bild ist quadratisch im Verhältnis 1:1).
Vielen Dank im Voraus!
GEPOSTET GEFÜHRT FUNC:
...könnte verwendet werden, um die Größe und konvertieren Sie ein Bild in ein beliebiges format QT unterstützt so weit... wie: 'bmp', 'gif', 'jpg', 'jpeg', 'png', 'pbm', 'tiff', 'svg', 'xbm'
def resizeImageWithQT(src, dest):
pixmap = QtGui.QPixmap(src)
pixmap_resized = pixmap.scaled(720, 405, QtCore.Qt.KeepAspectRatio)
if not os.path.exists(os.path.dirname(dest)): os.makedirs(os.path.dirname(dest))
pixmap_resized.save(dest)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erstellen Sie eine pixmap:
und verwenden Sie dann QPixmap.scaledToWidth oder QPixmap.scaledToHeight:
Mit 2048x1024 Bild, die erste Methode ergibt sich ein Bild, das 64x32, während die zweite wäre 128x64. Offensichtlich ist es unmöglich, die Größe 2048x1024 Bild auf 64x64 Pixel unter Beibehaltung des Seitenverhältnisses (weil die Verhältnisse anders sind).
Zu vermeiden, die Wahl zwischen Höhe oder Breite, die Sie verwenden können,QPixmap.skaliert:
wird automatisch angepasst, um die größte Größe möglich.
Um die Größe des Bildes, um eine genaue Größe zu tun:
Natürlich, in diesem Fall das resultierende Bild wird nicht halten das gleiche Seitenverhältnis, es sei denn, das ursprüngliche Bild war auch 1:1.