Album virtual para WEB
Publicado por Danilo 09/05/2004
[ Hits: 10.640 ]
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
DioPSI - Script multidistro para instalar programas
Mantendo seus repositórios Git e SVN atualizados
Adicionar agentes em uma ManageSystemList de ITM6
Gerar a linha do Depends prontinha para o "control" para gerar pacotes DEB
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Quando vocês pararam de testar distros? (12)
Problema com som no laptop (3)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









