Album virtual para WEB
Publicado por Danilo 09/05/2004
[ Hits: 10.362 ]
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
NÓtinha - Gerador de notas fiscais para empresas
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Minha rede tem um espaço invisível que não dá pra digitar o nome da re... (1)
Pedagogia no brasil não passa de alfabetização por m4sturbação mental ... (2)
compilação samba 4.22 rock linux 9.5 (3)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (7)