Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: epsxe 1.60llin
Por Al_Qaeda
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Scripts

Linux user

Publicado por Danilo em 09/05/2004    [ 6792 hits ]

Login: birilo, 271524 pontos

Homepage: http://www.danilocesar.com   


Descrição

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.

[ Download: album.sh ]   [ Enviar nova versão ]

[ 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
   Script Linux recomendado Script de humor
   Script Linux recomendado Script simples de backup de arquivos em máquina remota
   Script Linux recomendado Para quem esquece facil das coisas
   Script Linux recomendado Gapt-get (GUI para o apt-get)
   Script Linux recomendado Script para fazer o scroll (a rodinha) do mouse serial funcionar

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


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.