Album virtual para WEB
Publicado por Danilo 09/05/2004
[ Hits: 10.471 ]
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
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Realizar overclock no Miyoo Mini (plus ou normal)
Otimização de memória para máquinas modestas
Unbuntu não atualiza o firmware (1)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (0)
Dúvidas sobre a originalidade de conteúdos online (10)
Erro de interface de Rede no Virt Manager dentro Debian 13 KDE (12)