Album virtual para WEB

Publicado por Danilo 09/05/2004

[ Hits: 10.267 ]

Homepage: http://www.danilocesar.com

Download album.sh




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.

  



Esconder código-fonte

#!/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

Scripts recomendados

Get Palavra Amiga

Criar pacote Slackware

Twitter via shell

Música com a real beleza da matemática

ShellBase - Templates Profissionais para o seu Shell Script


  

Comentários
[1] Comentário enviado por ryu em 12/05/2004 - 11:53h

10 esse script!! ja fiz um backup dele de tao bom que achei..... vo organizar agora meus albuns xxx :-)

[2] Comentário enviado por birilo em 12/05/2004 - 12:24h

Hehehehehe, valeu... Pra mim também é uma mão na roda. =)
Depois que você cria um layout padrão, a publicação na web é muito mais fácil.
Aconselho também, se quiserem, a colocar nos links das páginas, em vez de um link, colocar uma figura html, fica mais legalzinho....

[3] Comentário enviado por ryu em 12/05/2004 - 14:56h

ah.. uma coisa q notei eh q alem dos thumbs as fotos normais tambem sao dimensionadas para um tamanho menor... como fazer pra nao mecher no tamanho das fotos?

[4] Comentário enviado por birilo em 12/05/2004 - 18:05h

Sim, as fotos são dimensionadas para um tamanho menor...

Não coloquei essa opção, pois não uso desta forma.

Mas vai ter 2 linhas assim Ryu:

echo -e "Redimensionando: ${DIR_FOTOS}${nome}.${EXT}"
convert -scale $ESCALA_IMG ${DIR_FOTOS}${nome}.${EXT} ${DIR_FOTOS}${nome}.${EXT}

São as linhas que o convert faz a conversão das escalas.... Comenta (com #) o inicio dessas duas linhas, então as fotos não serão redimencionadas.

Caso queira trocar o tamanho das imagens, utilize a variavel ESCALA_IMG declarada no inicio do scrip.

Abraços, Danilo

[5] Comentário enviado por pop_lamen em 08/08/2004 - 20:05h

Seguinte cara, eu queria fazer com q o html da FOTO exibisse o nome que a imagem tinha como titulo, tem como?

[6] Comentário enviado por pop_lamen em 08/08/2004 - 20:08h

Ah, e se possivel tb gostaria de dividir o index em paginas com 20 ou 30 fotos, se possivel q perguntasse antes qtas quero, desculpe abusar..
aeeahahe
tem jeito
me manda email para r0xing@bol.com.br

[7] Comentário enviado por roger.rk em 11/05/2006 - 20:30h

Olá gostei do material, onde encontro esse aplicativo convert, que software vc usa pra editar os fontes.

Atenciosamente

Roger

[8] Comentário enviado por roger.rk em 11/05/2006 - 20:53h

Será que alguem de vcs tem algum material assim semelhante em JAVA.
Por favor mandem pra mim pro e-mail: roger.rk@gmail.com
Valeu...

[9] Comentário enviado por himfea em 07/12/2010 - 17:52h

muito bom o script !

só pudias trocar o "minhatura" para "miniatura".

=]
abraços


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts