Album virtual para WEB
Publicado por Danilo 09/05/2004
[ Hits: 10.267 ]
Homepage: http://www.danilocesar.com
Este Script cria um álbum virtual em formato HTML, facilitando muito o processo de publicação de fotos em websites.
O Layout das página é 100% costumizavel, cabendo ao usuário
apenas editar as linhas HTML dentro do script Shell.
Para que o script funcione, é necessário o pacote instalar o patoce imagemagick, e que o aplicativo convert esteja dentro do PATH.
#!/bin/bash clear ################################################################ # Script gerador de album virtual # Necessita dos pacotes: imagemagick # # autor: Danilo Cesar # danilo.paula@brturbo.com ################################################################ EXT="jpg" # Extensão dos arquivos DIR_DEST=$2 #Diretório destino DIR_ORI=$1 #Diretório de Origem" ESCALA_IMG=400 # Tamanho das imagens ESCALA_THUMB=100 # Tamanho das minhaturas COLUNAS=5 # Numero de colunas da página indice ERRO=0 if [ -z "$1" ]; then ERRO=1 fi if [ -z "$2" ]; then ERRO=1 fi if [ "$ERRO" == 1 ]; then echo -e "Forma Correta de usar:" echo $(basename $0) "(Origem) (Destino) " exit 1 fi echo "Digite o nome do Album" read NOME_ALBUM echo "Digite o Titulo do Album" read TITULO ###################################################### echo "Acessando pasta de origem" $DIR_ORI cd "$DIR_ORI" if [ "$?" != 0 ]; then echo "Não foi possível acessar a pasta " $DIR_FOTOS exit 1 fi echo "OK" echo "Contando Quantidade de fotos a serem utilizadas" quant=`ls *.${EXT} | wc -l` if (( $quant == 0 )); then echo "Não há fotos no diretório escolhido" exit 1 fi echo $quant "Fotos contadas" ########################################################### # Criando pastas necessárias ########################################################### DIR_FOTOS=${DIR_DEST}/fotos/ DIR_FOTOS_S=fotos/ DIR_THUMB=${DIR_DEST}/thumb/ DIR_THUMB_S=thumb/ DIR_HTML=${DIR_DEST}/html/ DIR_HTML_S=html/ echo "Criando pastas" $DIR_FOTOS mkdir -p $DIR_FOTOS if [ "$?" != 0 ]; then echo "Não foi possível criar o diretório" $DIR_FOTOS exit 1 fi echo -e "Concluido!" ######## echo "Criando pastas" $DIR_THUMB mkdir -p $DIR_THUMB if [ "$?" != 0 ]; then echo "Não foi possível criar o diretório" $DIR_THUMB exit 1 fi echo -e "Concluido!" ########## echo "Criando pastas" $DIR_HTML mkdir -p $DIR_HTML if [ "$?" != 0 ]; then echo "Não foi possível criar o diretório" $DIR_HTML exit 1 fi echo -e "Concluido!" echo -e "\n\n.........................................\n\n" echo "Iniciando cópia de arquivos" ########################################################### #Form indica a formatação(zeros) o nome do arquivo terá form=$((`echo $quant | wc -c` -1)) i=1 ls *.${EXT} | while read ARQ do nome=`printf {%0${form}d,$i}` nome_n=`printf {%0${form}d,$(($i+1))}` nome_p=`printf {%0${form}d,$(($i-1))}` echo -e "Copiando $ARQ - ($i/$quant)" cp $ARQ ${DIR_FOTOS}${nome}.${EXT} if [ "$?" != 0 ]; then echo "Não foi possível copiar o arquivo " $ARQ exit 1 fi echo -e "Redimensionando: ${DIR_FOTOS}${nome}.${EXT}" convert -scale $ESCALA_IMG ${DIR_FOTOS}${nome}.${EXT} ${DIR_FOTOS}${nome}.${EXT} if [ "$?" != 0 ]; then echo "Não foi possível redimencionar arquivo " ${DIR_FOTOS}${nome}.${EXT} exit 1 fi echo -e "Criando Minhatura..." convert -thumbnail $ESCALA_THUMB ${DIR_FOTOS}${nome}.${EXT} ${DIR_THUMB}${nome}.${EXT} if [ "$?" != 0 ]; then echo "Não foi possível converter arquivo " ${DIR_FOTOS}${nome}.${EXT} exit 1 fi echo -e "Criando página HTML" # # Inicio da página HTML. # Variáveis: # $NEXT -> Link para proxima foto # $PREV -> Link para foto anterior # $FOTO_LINK -> Imagem # # A Página será criada em cima deste modelo. FOTO_LINK="<img src=\"../${DIR_FOTOS_S}${nome}.${EXT}\">" ###################################################################### #Linhas Que verificam os Links. Para não criar, por exemplo, link para #página anterior na página inicial. ###################################################################### if [[ $i -gt 1 ]]; then PREV="<a href='${nome_p}.html'>Anterior</a>" else PREV= fi if [[ $i -lt $quant ]]; then NEXT="<a href='${nome_n}.html'>proxima</a> " else NEXT= fi ##################################################################### #As linhas do HTML abaixo podem ser aditadas de acordo com o gosto do #usuário, podendo este criar o layout desejado #################################################################### echo " <html> <head><title>${NOME_ALBUM} $i </title></head> <body> <table> <tr> <td align=\"center\" colspan=3>$Album virtual para WEB</td> </tr> <tr> <td></td> <td>${FOTO_LINK}</td> <td></td></tr> <tr> <td>${PREV}</td> <td align=\"center\"><a href=../index.html>index</a> </td> <td>${NEXT}</td> </tr> </table> </body> </html>" > ${DIR_HTML}/${nome}.html i=$(($i +1)) done ##################################################### #Criação do index.html - Indice das fotos ##################################################### echo "Criando index" echo " <html> <head><title>${NOME_ALBUM} $i </title></head> <body> <table> <tr> <td align=\"center\" colspan=${COLUNAS}>$Album virtual para WEB</td> </tr> <tr> " > ${DIR_DEST}/index.html ####################################################### # While que imprime os links das fotos ####################################################### i=1 while (($quant >= $i)) do nome=`printf {%0${form}d,$i}` FOTO_LINK="<a href='${DIR_HTML_S}${nome}.html'><img border='0' src=\"${DIR_THUMB_S}${nome}.${EXT}\"></a>" echo -e "<td>$FOTO_LINK</td>" >> ${DIR_DEST}/index.html ###################################################### # Neste ponto, o Shell divide as colunas, imprimindo # um <tr></tr> quando já tiver imprimido $COLUNAS fotos ###################################################### if ((${i}%${COLUNAS}==0));then echo -e "</tr><tr>" >> ${DIR_DEST}/index.html fi i=$(($i+1)) done ####################################################### # Fim do While ####################################################### echo " </tr> </table> </body> </html>" >> ${DIR_DEST}/index.html echo "OK" exit 0
Música com a real beleza da matemática
ShellBase - Templates Profissionais para o seu Shell Script
Vou voltar moderar conteúdos de Dicas e Artigos (0)
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Vou voltar moderar conteúdos de Dicas e Artigos (0)
Instalação Uefi com o instalador clássico do Mageia (0)
É cada coisa que me aparece! - não é só 3% (2)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta