Album virtual para WEB

Publicado por Danilo 09/05/2004

[ Hits: 10.486 ]

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

dep-info - verificar se o programa está instalado no sistema

Script para converter um diretório de arquivos em mp3 para ogg.

Matrix Text Mode

Criando um pacote autoinstalador em shell

Renomear em sequência arquivos de imagens acrescentando a informação do tamanho


  

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