Как на Питоне изменить разрешение у всех изображений в папке
Бывает, что нужно массово у всех изображений в папке изменить размеры (разрешения). В данном примере мы меняем по сторонам 650х400 (ширина х высота), тоесть, все пропорции сохраняются, но если какая-либо сторона больше указанных рамок, то делаем ресайз. Таким нехитрым способом мне удалось сократить вес пикчей в 3 раза! Вот сам код на Python, справляется очень быстро, при необходимости можете поменять размеры на свои:

from PIL import Image
import os

def crabs_resize_image(image_path):
    # Открываем изображение
    image = Image.open(image_path)
   
    # Получаем размеры изображения
    width, height = image.size
   
    # Вычисляем новые размеры с сохранением пропорций
    if width > 650:
        new_width = 650
        new_height = int((new_width / width) * height)
    elif height > 400:
        new_height = 400
        new_width = int((new_height / height) * width)
    else:
        return image  # Изображение уже удовлетворяет заданным размерам
   
    # Уменьшаем изображение
    resized_image = image.resize((new_width, new_height), Image.LANCZOS)
    resized_image.save(image_path)

# Путь к папке с изображениями
folder_path = "uploads"

# Обход всех файлов в папке
for filename in os.listdir(folder_path):
    if filename.lower().endswith(('.jpg', '.jpeg')):
        image_path = os.path.join(folder_path, filename)
        crabs_resize_image(image_path)
        print('Ok')


Категория: Прочее Кодинг, софт
Рейтинг поста: 0
Дата добавления: 16 августа 2023 в 07:27
Комментариев: 0
Автор: MrCrabs
Рейтинг автора: 198.41
Просмотров всего: 320
Просмотров за неделю: 16
Комментариев нет
Авторизуйтесь для добавления комментария