χάμστερ :: :: :: ::
Feci, quod potui, faciant meliora potentes
Пакетный ресайз картинок.
Понадобилось уменьшить кучу png картинок. Тк начал осваивать Python, решил совместить приятное с полезным. Получилось следующее решение:
import os, Image
# Получаем полный список папок и картинок
def getsubs(dir):
# get all
dirs = []
files = []
for dirname, dirnames, filenames in os.walk(dir):
dirs.append(dirname)
for subdirname in dirnames:
dirs.append(os.path.join(dirname, subdirname))
for filename in filenames:
files.append(os.path.join(dirname, filename))
return dirs, files
files = getsubs('cgo')
# создаем копию структуры папок
for dir in files[0]:
name = 'out/' + dir
if not(os.path.exists(name)):
os.mkdir(name)
else:
print name + ' exists'
# ресайзим png файлы.
for file in files[1]:
if (file.split('.')[-1] == 'png'):
image = Image.open(file)
rsImage = image.resize((int(image.size[0]/4), int(image.size[1]/4)),)
# Сохраняем dpi, если есть.
if 'dpi' in rsImage.info:
rsImage.save('out/' + file, dpi=rsImage.info['dpi'])
else:
rsImage.save('out/' + file)
else:
print file + " not png"