Album virtual para WEB
Publicado por Danilo 09/05/2004
[ Hits: 10.620 ]
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
Obtém fotos de uma Câmera Digital organizando em Subdiretórios e Renomeando
xpock-dl: baixe vídeos do xpock.com.br
Ativa e dasativa o XGL para o KDE
Ver TV e rádio online por shell script
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Jogar games da Battle.net no Linux com Faugus Launcher
Como fazer a Instalação de aplicativos para acesso remoto ao Linux
Como fazer a instalação do Samba
Como fazer a conversão binária e aplicar as restrições no Linux
Duas Pasta Pessoal Aparecendo no Ubuntu 24.04.3 LTS (19)
Formas seguras de instalar Debian Sid (13)
Malware encontrado em extensões do Firefox. (0)
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









