Python: How to Resize Raster Image with PyQt Python: How to Resize Raster Image with PyQt python python

Python: How to Resize Raster Image with PyQt


Create a pixmap:

    pixmap = QtGui.QPixmap(path)

and then use QPixmap.scaledToWidth or QPixmap.scaledToHeight:

    pixmap2 = pixmap.scaledToWidth(64)    pixmap3 = pixmap.scaledToHeight(64)

With a 2048x1024 image, the first method would result in an image that is 64x32, whilst the second would be 128x64. Obviously it is impossible to resize a 2048x1024 image to 64x64 whilst keeping the same aspect ratio (because the ratios are different).

To avoid choosing between width or height, you can use QPixmap.scaled:

    pixmap4 = pixmap.scaled(64, 64, QtCore.Qt.KeepAspectRatio)

which will automatically adjust to the largest size possible.

To resize the image to an exact size, do:

    pixmap5 = pixmap.scaled(64, 64)

Of course, in this case, the resulting image won't keep the same aspect ratio, unless the original image was also 1:1.