Во время разработки интернет магазина, каталога или просто галереи, часто возникает ситуация когда необходимо уменьшить размер изображений. В данной статье мы рассмотрим библиотеку для уменьшения размера и разрешения изображения Pillow-SIMD. А так же напишем небольшой Python скрипт, воспользовавшись данным инструментом.

В качестве данного инструмента будет использоваться python пакет Pillow-SIMD. 

Откроем терминал и следующей командой установим менеджер пакетов pip:

sudo apt install python-pip

Далее установим необходимые для работы библиотеки:

sudo apt install libz1 zlib1g-dev libjpeg-dev

И следующей командой устанавливаем pillow

pip install pillow

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

Папка с изображениями linux ubuntu 18.04

В этой папке три изображения с общим весом 9 мегабайт. Каждое изображение имеет большое разрешение (приблизительно 5000x3200 пикселей).

Размер изображений linux ubuntu 18.04

Свойства изображения linux ubuntu 18.04

Откроем текстовый редактор и создадим новый python файл main.py и сохраним его в папке с проектом.

Создадим папку input в которой будут храниться входящие файлы. И папку output в которой будут храниться обработанные файлы.

Папка проекта linux ubuntu 18.04

Далее нам необходимо написать небольшой скрипт. Скачать скрипт из видео (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 пикселей:

Размер изображений linux ubuntu 18.04

Свойства изображения linux ubuntu 18.04