Esse é um script que eu uso muito rotineiramente. Eu escrevi ele porque eu tentei várias soluções mas nenhuma era exatamente o que eu precisava e o que eu preciso é geralmente bem simles.
Só quero pegar um monte de fotos de várias resoluções diferentes e gerar uma página em HTML com as miniaturas das imagens com largura de 500 pixeis e com o link para a imagem original. É uma implementação bem simples, sem muita sofisticação. Eu coloco aqui porque ele é fácil de adaptar para outros usos.
#!/usr/bin/env python
import os
import Image
cwd = os.getcwd()
for arquivo in os.listdir(cwd):
if arquivo.endswith('.JPG'):
im = Image.open(arquivo)
im.thumbnail((500,375), Image.ANTIALIAS)
nome = arquivo.split('.')[0]
tnome = nome + "_thumb.jpg"
im.save(tnome, "JPEG")
print '
' % (arquivo, tnome)
Ele procura os arquivos do diretório que terminam com .JPG, cria uma miniatura de tamanho 500 por 375 e cospe o HTML na saÃda padrão. Para usar ele, entre no terminal do diretório onde você quer fazer a galeria e execute o script:
python galeria.py > saida.html
Uma sugestão (de mim para mim mesmo) seria dar um .sort() no os.listdir(cwd) assim eles ficariam em ordem alfabética, e como as máquinas fotográficas digitais nomeiam os arquivos num ordem crescente, você tem as fotos na ordem que foram capturadas.
Ficaria os.listdir(os.getcwd()).sort()
Onde eu encontro o pacote Image?
Você pode instalar usando o pip:
pip install PIL
Em qual diretório ele procura as imagens?