Image processing is quite easy and fast in Python with libraries available. I recently was trying to make images Instagram-friendly using Python script.
What do I mean Instagram Friendly Images:
Basically, Instagram supports all kinds of images ( https://help.instagram.com/1631821640426723) but a square-shaped photo fits the best.
So, We have to resize the photo to a 1080 x 1080 pixels size.
There are multiple use cases are possible like
The original photo is a rectangle and larger in size.
So the idea here is to use the maximum space from the original image only but if there is an area remaining fill it with a color.
We will use the Pillow (Python’s image manipulation library) to process the image. If not install use below command
pip install Pillow
from PIL import Image
import requests
def make_square(im, min_size=1080, fill_color=(0, 0, 0, 0)):
x, y = im.size
print("Original size "+str(x)+" X "+str(y))
size = max(min_size, x, y)
new_im = Image.new('RGB', (size, size), fill_color)
if(x > y):
mod = size/x
x = int(x * mod)
y = int(y * mod)
elif(x < y):
mod = size/y
x = int(x * mod)
y = int(y * mod)
new_im.paste(im.resize((x,y)), (int((size - x) / 2), int((size - y) / 2)))
x, y = new_im.size
print("New size "+str(x)+" X "+str(y))
return new_im
def processImage(url):
img = Image.open(requests.get(url, stream=True).raw)
new_img = make_square(img)
new_img.show()
processImage("https://images.pexels.com/photos/771742/pexels-photo-771742.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=1")
It will return the squared image.
Happy Coding <3
Top comments (0)