Album virtual para WEB
Publicado por Danilo 09/05/2004
[ Hits: 10.545 ]
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
Calcular o consumo de energia elétrica de eletrodomésticos
Systemctl-config - parada ou reativação de um serviço do systemD
Converter arquivo em PDF e enviar por e-mail pelo terminal
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? (11)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (3)









