Найти - Пользователи
Полная версия: масштабирование картинок в папке
Начало » Центр помощи » масштабирование картинок в папке
1 2 3
Lion1971
Уважаемые гуру Питона, при работе с сайтом приходиться вручную подгонять размеры картинок под стандарт. К примеру - большая сторона 460 пикс. Меньшая естественно - по соотношению сторон оригинала. Хотелось бы автоматизировать этот процесс до одного клика, запуская скрипт в папке, где лежат джейпеги. Наслышан о PIL. Как проще реализовать перебор файлов в папке по маске *.jpg?
Заранее спасибо.
4kpt
Студенты в свое врея сделали модуль для автоматичекого конвертирования формата. Он позволяет пакетно обрабатывать много фотографий: менять разрешение в пропорциях, наносить водяной знак, менять формат и еще много плюшек. Уже не помню. Но по маске - нужно будет самому.

Если вопрос только по маске, то можно:
import os
list_files_jpg = [file_name for file_name in os.listdir("путь_к_папке_с_файлами") if file_name.endswith(".jpg")]
Lion1971
спасибо, а как указать полный путь к файлу? Присоединить строку типа path+list_files_jpg[]?
4kpt
Как Вы поняли, os.listdir возвращает список всех файлов по указанному пути.
Чтобы получить полный путь к одному из этих файлов, нужно
path_to_jpg_file = os.path.join("путь_переданный_в_listdir", "имя_файла_из_listdir")
Lion1971
а если скрипт выполняется в папке с рисунками, то есть путь - текущая папка?
Lion1971
вроде так os.listdir('.')
4kpt
Лучше указывать явно :)
Lion1971
ну если мёд то уж ложкой
как сформировать новое имя файла для сохранения тип name_r.jpg
Lion1971
import os, Image, math
list_files_jpg = [file_name for file_name in os.listdir('.') if file_name.endswith(".jpg")]
for i in list_files_jpg:
    im=Image.open(i)
    factor=im.size[0]/460.0
    f=int(math.ceil(im.size[1]/factor))
    out=im.resize((460,f))
    
вот типа такого, только сохранить осталось
4kpt
Зачем так сложно.
Есть метод thumbnail. Он автоматески определить пропорции :)
Для сохранения есть метод save(“полный_путь_для_нового_файла”)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB