Wednesday, July 3, 2024
HomeLanguagesPythonChange the ratio between width and height of an image using Python...

Change the ratio between width and height of an image using Python – Pillow

Python Imaging Library (expansion of PIL) is the de facto image processing package for the Python language. It incorporates lightweight image processing tools that aid in editing, creating, and saving images. This module is not preloaded with Python. So to install it execute the following command in the command-line:

pip install pillow

To change the ratio of height and width we will add or subtract any random value from them.

Functions Used

  • Image.open(fp, mode=’r’) method: This method is used to open the image.
  • Image.resize(size, resample=0) method: This method is used to resize the image. Interpolation happens during the resize process, due to which the quality of image changes whether it is being upscaled (resized to a higher dimension than original) or downscaled (resized to a lower Image then original).

Approach:

  • We will first take an image.
  • Then we will find its height and width.
  • Then we will add and subtract any random number from them to change the ratio.
  • Then we will save the image.

Example:

Image Used:

Python3




# Python program to change the ratio of height and
# width of an image 
from PIL import Image
  
# Taking image as input
img = Image.open('logo.png')
  
# Getting height and width of the image
height = img.size[0]
width = img.size[1]
  
# Printing ratio before conversion
print('Ratio before conversion:', width/height)
  
# Changing the height and width of the image
width = width + 25
height = height - 25
  
# Resizing the image
img = img.resize((width ,height), Image.ANTIALIAS)
  
# Printing the ratio after conversion
print('Ratio after conversion:', width/height)
  
# Saving the resized image
img.save('Resized Image.png')


Output:

Ratio before conversion: 1.0
Ratio after conversion: 1.25

Output Image:

Shaida Kate Naidoo
am passionate about learning the latest technologies available to developers in either a Front End or Back End capacity. I enjoy creating applications that are well designed and responsive, in addition to being user friendly. I thrive in fast paced environments. With a diverse educational and work experience background, I excel at collaborating with teams both local and international. A versatile developer with interests in Software Development and Software Engineering. I consider myself to be adaptable and a self motivated learner. I am interested in new programming technologies, and continuous self improvement.
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments