Resize rectangular image to square, keeping ratio and fill background with black

You can use Pillow to accomplish that:

Code:

from PIL import Image

def make_square(im, min_size=256, fill_color=(0, 0, 0, 0)):
    x, y = im.size
    size = max(min_size, x, y)
    new_im = Image.new('RGBA', (size, size), fill_color)
    new_im.paste(im, (int((size - x) / 2), int((size - y) / 2)))
    return new_im

Test Code:

test_image = Image.open('hLarp.png')
new_image = make_square(test_image)
new_image.show()

For a white background you can do:

new_image = make_square(test_image, fill_color=(255, 255, 255, 0))

Result:

enter image description here

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)