Форум сайта python.su
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)) newname=i.split(".")[0]+"_r.jpg" out.save(newname)
Офлайн
Почитайте предыдущее сообщение.
Е еще…
Так делать нежелательно (по стандарту):
import os, Image, math
Отредактировано 4kpt (Июль 13, 2013 14:38:10)
Офлайн
Большое спасибо!
Да уж, велик и могуч сей Питон
Офлайн
Не за что.
И последнее. Писать скрипт, который придется таскать в каждую папку, где нужно вносить изменения - не “по-феншую”. Желательно делать скрипт так. что при его запуске можно передать список путей к папкам с фото, а он сам все за вас сделает…
Офлайн
да, кстати… я так понял, thumbnail работает исходя из большей стороны?
Офлайн
import os import Image new_width=460 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) scalefactor=im.size[0]/float(new_width) newsize=(new_width, int(im.size[1]/scalefactor)+1) out=im.resize(newsize, Image.ANTIALIAS) out.save('r_'+i)
Офлайн
Да, thumbnail исходит из того, что фотография должна вписаться в box, который передается. Так как вписывать в box нужно по большей стороне, то -да, Вы правильно написали.
Офлайн
Так будет более качественно:
import os import Image def new_image(path, new_width, text="r_"): for name in [file_name for file_name in os.listdir(path) if file_name.endswith(".jpg")]: img = Image.open(name) out = im.resize((new_width, img.size[1] * new_width / img.size[1] + 1), Image.ANTIALIAS) out.save(text + name) new_image("Ваш_путь", 460)
Отредактировано 4kpt (Июль 13, 2013 15:44:03)
Офлайн
Спасибо. Качественно и красиво
только
out = im.resize((new_width, img.size[1] * new_width / img.size[1] + 1), Image.ANTIALIAS)
out = im.resize((new_width, img.size[1] * new_width / img.size[0] + 1), Image.ANTIALIAS)
Отредактировано Lion1971 (Июль 13, 2013 21:13:24)
Офлайн
Lion1971Это не качественно и красиво, а так, на скорую руку. Качественно будет в виде классов :)
Качественно и красиво
Отредактировано 4kpt (Июль 13, 2013 22:12:54)
Офлайн