Уменьшение размера изображения без потери качества. Python Pillow-SIMD
Во время разработки интернет магазина, каталога или просто галереи, часто возникает ситуация когда необходимо уменьшить размер изображений. В данной статье мы рассмотрим библиотеку для уменьшения размера и разрешения изображения Pillow-SIMD. А так же напишем небольшой Python скрипт, воспользовавшись данным инструментом.
В качестве данного инструмента будет использоваться python пакет Pillow-SIMD.
Откроем терминал и следующей командой установим менеджер пакетов pip:
sudo apt install python-pip
Далее установим необходимые для работы библиотеки:
sudo apt install libz1 zlib1g-dev libjpeg-dev
И следующей командой устанавливаем pillow
pip install pillow
Для видео я подготовил тестовую папку с изображениями:
В этой папке три изображения с общим весом 9 мегабайт. Каждое изображение имеет большое разрешение (приблизительно 5000x3200 пикселей).
Откроем текстовый редактор и создадим новый python файл main.py и сохраним его в папке с проектом.
Создадим папку input в которой будут храниться входящие файлы. И папку output в которой будут храниться обработанные файлы.
Далее нам необходимо написать небольшой скрипт. Скачать скрипт из видео (1 Кб)
import os
from PIL import Image
res_width = 1000
for file in os.listdir("input"):
if file.endswith(".jpg"):
img = Image.open(os.path.join("input", file))
wpercent = (res_width/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((res_width,hsize), Image.ANTIALIAS)
img.save(os.path.join("output", file))
Запустим этот скрипт. Для этого откроем терминал, перейдем в папку со скриптом:
cd Загрузки/images_test/
И следующей командой запустим скрипт:
python main.py
Скрипт завершился успешно, перейдем в папку с проектом, в папку output и видим наши обработанные изображения. Вес трех изображений составил 218 килобайт, а ширина каждого изображения сократилась до 1000 пикселей:
Если вам понравилась статья, то поделитесь ею в социальных сетях: