Criando uma galeria de imagens com Python

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 '<a href="%s"><img src="%s"/></a><br/>' % (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

Ele cria galerias bem simples como essa ou essa.

3 thoughts on “Criando uma galeria de imagens com Python

  1. 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()

Leave a Reply

Your email address will not be published. Required fields are marked *