Изменение размера изображения на квадрат - PullRequest
1 голос
/ 30 апреля 2020

У меня много изображений разного размера, от 1100x200 до 100x20. Теперь я хотел бы изменить размеры всех этих изображений до квадрата одинакового размера (например, 256x256).

Я хотел бы изменить размер изображения, подобного этому:

original

Я хотел бы получить новое квадратное изображение, подобное этому:

square

Я попробовал этот код:

from PIL import Image, ImageOps
original_image = Image.open(r"path\to\images\*.png")
size = (256, 256)
fit_and_resized_image = ImageOps.fit(original_image, size, Image.ANTIALIAS)

Вместо желаемого квадратного изображения я получаю изображение, подобное этому:

square

К сожалению, оно обрезано изображение с исходной крысой ios вместо того типа изображения, который я хочу.

Ответы [ 2 ]

2 голосов
/ 30 апреля 2020

Если вы собираетесь много обрабатывать изображения, OpenCV - отличный вариант.

import cv2 

img = cv2.imread('path/to/file.png')
print (img.shape)
size = (256, 256)

img2 = cv2.resize(img, size)
print (img2.shape)  # (256, 256)

cv2.imshow('img1', img)
cv2.imshow('img2', img2)

cv2.waitKey(0)
cv2.destroyAllWindows()
2 голосов
/ 30 апреля 2020

Использование миниатюра

from PIL import Image
original_image = Image.open(r"path\to\images\*.png")
size = (256, 256)
original_image.thumbnail(size, Image.ANTIALIAS)
...