resize_image.py

#!/usr/bin/python3
# ===================================================================
# resize an image
# ===================================================================

from PIL import Image

infile     = 'example.png'
outfile    = 'zzzzzzz.png'
new_height = 420

# ---- open image

image = Image.open(infile)

print()
print('---- input image -----------')
print(f'file  : {infile}')
print(f'width : {image.size[0]}')
print(f'height: {image.size[1]}')

# --- create a "new_width" based on "new_height"

new_width = int(float(image.size[0]) *
                (new_height / float(image.size[1])))

# ---- create a resized image

new_size = (new_width,new_height)

new_image = image.resize(new_size,resample=Image.BICUBIC)


## ---- found on the web ---------------------------------
## ---- see PIL.Image documentation for "resize" parameter
## ---- new_image = image.resize(new_size,Image.NEAREST)
## -------------------------------------------------------


# ---- save new image

new_image.save(outfile)

print()
print('---- output image ----------')
print(f'file : {outfile}')
print(f'width : {new_image.size[0]}')
print(f'height: {new_image.size[1]}')