Как я могу изменить размер и изменить изображения с помощью Python? - PullRequest
1 голос
/ 01 октября 2019

Я хочу работать с кучей изображений (более 100), и мне нужно сохранить их пропорции (которые различаются между собой), но изменить их размер до максимального размера 1000x1000 и иметь максимальный размер файла 100 КБ.

Я попробовал пакет "optimize-images", но не смог получить желаемый результат, потому что не мог быть достаточно конкретным. Я также попытался изменить размер с imageio, но проблема размера остается. Я читал разные источники и ответы на похожие вопросы, но не нашел способа сделать это.

import imageio
import os

os.chdir("C:\\Users\\abc123\\Pictures\\Resize")

im = imageio.imread("a.jpg")

small = transform.resize(im, (1000,1000), mode="symmetric", preserve_range=True)

В идеале я буду использовать метод walk (), чтобы найти все изображения в папке, изменить их размер до 1000x1000, сохранить соотношение сторон, заполнив пробел разницу между окончательным размером и измененным размероми, наконец, примените снижение качества на 0,8 или 0,75, пока размер файла не станет равен <<100 кбЯ понимаю, что мой код очень прост, но я в основном ищу направления / вдохновение для решения этой проблемы. Заранее спасибо! </p>

1 Ответ

1 голос
/ 01 октября 2019

Вы можете использовать библиотеку skimage.

import numpy as np
from skimage import data, color
from skimage.transform import rescale, resize

grayimage = color.rgb2gray(data.astronaut())
image_rescaled = rescale(grayimage, 1.0 / 4.0, anti_aliasing=False, multichannel = False)
image_resized = resize(grayimage, (grayimage.shape[0] / 4, grayimage.shape[1] / 4),
                       anti_aliasing=True)
plt.imshow(np.hstack([image_rescaled, image_resized]))
plt.title('Rescaled'+ ''.join([" "]*30) +'Resized')
plt.show()

Вывод :
enter image description here

Сохранение изображения с уменьшенным размером файла

Для управленияРазмер файла при сохранении изображения в вашей файловой системе, вы можете использовать библиотеку PIL с optimize=True и quality=some_number. Смотрите эту ветку: Как уменьшить размер файла изображения с помощью PIL .

Ссылки

HowTo: Масштабирование и изменение размера с использованием skimage Библиотека

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...