Este vai ser o meu primeiro post sobre aplicações escritas por mim.
O que é que então isto faz?
É um script que na altura em que usava Linux fiz em Python para gerar uma galeria de fotos em html a partir de um directório com fotos, pois precisava de o fazer porque tinha um directório com várias fotos e "colocar" uma foto de cada vez em código html é trabalhoso, por isso aproveitei uma biblioteca de Python e pus mãos à obra.
A minha primeira dificuldade foi certamente criar uma thumbnail da imagem em questão, por isso dei uma visita ao Google (http://www.google.pt) e rapidamente encontrei o que queria: Python Imaging Library (http://www.pythonware.com/products/pil/). É óbvio que não sabia como trabalhar com este, então disse a mim mesmo: RTFM, fi-lo e em questão de minutos já sabia minimamente o que queria.
Primeiro de tudo tive que indicar que imagem abrir, para isto atribuí a uma variável o resultado de
Image.open(imagem) |
Em que imagem será uma variável com o caminho da foto/ficheiro.
Também declarei outra variável: THUMBSIZE, em que atribuí a esta a largura e altura da thumbnail (230x153), mais propriamente o valor 230,153. Após isto utilizei a função
Thumbnail |
da biblioteca PIL (Python Imaging Library) para a criar, que tem a seguinte sintaxe:
Img (esta foi uma variável criada por mim em que terá como valor o resultado de image.open(imagem) – img.thumbnail(THUMBSIZE) |
OK. Já tenho a thumbnail da imagem, agora tenho que a salvar… mas há um problema: Imaginemos que o utilizador do script já o correu anteriormente, mas agora acrescentou mais imagens, só que as thumbnails das imagens já existentes encontram-se no directório… como fazer para não criar uma thumbnail de uma thumbnail?
É simples, basta utilizar um if para verificar se as primeiras 5 letras da variável imagem são constituídas pela palavra thumb
If imagem[0:5] != "thumb": |
Após esta verificação, caso o resultado seja Verdadeiro e não Falso, o script vai executar o que vem a seguir a esta condição:
Img.save('thumb.' + str(imagem), "JPEG") |
Ou seja, o ficheiro ficará: thumb.Foto1.JPG note-se aqui o uso da função str() para converter o valor de imagem para uma string (cadeia de caracteres alfanuméricos). Basicamente a função save do PIL é para salvar num ficheiro as alterações feitas à imagem.
E pronto, temos o problema de criar as thumbnails resolvido.
Aqui abaixo segue-se o código completo do script.
#!/usr/bin/env python
# Alto Circuito Galeria # Por Alexandre Garcia (c) 2006 # Wed, 06 Dec 2006
import os, time, string, Image, glob
THUMBSIZE = 230, 153 PATH = "/home/amg/AC_fotos/" # Alterar para o directorio das fotos HTML = PATH + "index.html" TITLE = "Alto Circuito Lan Party I - Fotos" # Alterar para o titulo do site ficheiro = open(HTML,"w")
def converter(): os.chdir(PATH) for imagem in glob.glob("*.JPG"): img = Image.open(imagem) img.thumbnail(THUMBSIZE) if imagem[0:5] != "thumb": img.save('thumb.' + str(imagem), "JPEG")
def gerar(): os.chdir(PATH) imgthumb = glob.glob("thumb.*") ficheiro.write("<html><head><title>" + TITLE + "</title></head><body><font size=\"4\"><b><center>" + TITLE + "</b></font><br><br>") for thumb in imgthumb: thumb = '<a href=\"' + str(thumb).strip('thumb.') + '\">' + '<img src=\"' + thumb + '\">' + '</img>' + '</a>' + ' ' ficheiro.write(thumb) ficheiro.write("<br><br><font size=\"2\">Actualizado em " + time.strftime("%d-%m-%Y %H:%M:%S") + "<br>Galeria Alto Circuito - Script feito por <a href=\"mailto:alexmgarcia@tux-linux.net\" style=\"text-decoration:none\"><b>Alexandre Garcia</b></a> (c) 2006</font></center></body></html>") ficheiro.close()
converter() gerar() |
Haja saúde para todos!
Sem comentários:
Enviar um comentário