createThumbs

Publicado por Jeferson Alberi da Silva 09/01/2008

[ Hits: 5.039 ]

Download createThumbs




Script para criação de forma automática de uma página HTML com miniaturas de suas fotos, e links para as fotos em tamanho desejado e tamanho original.

  



Esconder código-fonte

#!/bin/bash

ACCOUNTANT="0"            # Contador para saber em que posição no total de imagens o loop se encontra.
COLLECTION="Minha Coleção"      # Define o nome da coleção de imagens.
DESTINATION="imagens"         # Define o nome da pasta onde sera gravado as imagens e arquivos html.
FILENAME_DESTINATION="image"      # Define o nome dos arquivos, por exemplo se você definir como imagem os arquivos ficariam como imagem-1.html, imagem-1.jpg, imagem-2.html, imagem-2.jpg
INDEXNAME="thumbs.html"         # Define o nome para o index da coleção.
NAME="createThumbs"         # Define o nome do programa.
ORIGIN=""            # Define o diretório de origem (onde estão as imagens).
THUMB_SIZE="69x69"         # Define o tamanho da imagem em formato thumb
TITLE="WasabiLNX"         # Define o título como por exemplo minha.pagina.com.br
URL="http://br.geocities.com/wasabilnx" # Define a URL do site do programa.
VERSION="0.1"            # Define a versão do programa.
HEIGHT="480"                            # Define a largura das imagens no formato normal.
WIDTH="640"            # Define a altura das imagens no formato normal.

Usage(){
   echo "$0, version ${VERSION}"
   echo "Copyright (C) 2005-2005, Jeferson A SILVA <jasilva_cwb@yahoo.com.br>"
   echo ""
   echo "Este programa é um software livre;  você pode redistribuilo e/ou modificá-lo"
   echo "sob os termos da licença GNU conforme publicado pela mesma; versão 2 da licença,"
   echo "ou alguma versão mais antiga."
   echo ""
   echo -e "Usage:"
   echo -e "\t--collection\t\t- Define o nome da coleção de imagens."
        echo -e "\t--destination\t\t- Define o nome da pasta onde sera gravado as imagens e arquivos html."
   echo -e "\t--file_destination\t- Define o nome dos arquivos, por exemplo se você definir como imagem os arquivos ficariam como imagem-1.html, imagem-1.jpg, imagem-2.html, imagem-2.jpg"
        echo -e "\t--indexname\t\t- Define o nome para o index da coleção."
        echo -e "\t--origin\t\t- Define o diretório de origem (onde estão as imagens)."
   echo -e "\t--thumb_size\t\t- Define o tamanho das imagens thumb Ex.: 69x69"
        echo -e "\t--title\t\t\t- Define o título como por exemplo minha.pagina.com.br"
        echo -e "\t--height\t\t- Define a largura das imagens no formato normal para exibição."
        echo -e "\t--width\t\t\t- Define a altura das imagens no formato normal para exibição."
        echo -e "\t--help\t\t\t- Utilize para obter informações sobre a utilização deste."
   echo -e "Exemplo:"
   echo -e "\t$0 --origin=/tmp/imagens --destination=thumbs"
   echo -e "\t$0 --origin /tmp/imagens --destination screenshot"
   echo -e "\t$0 --origin /tmp/imagens --destination thumbs --collection \"Minhas Fotos\" --indexname \"thumbs.html\" --title \"Meu Site\" --height \"480\" --width \"640\""
   echo ""
   exit 0
}

CreateThumbs(){
# cria diretório de destino caso o mesmo não exista
mkdir -p ${DESTINATION}

# template do index cabeçario
cat > ${INDEXNAME} <<EOF
<html>
<head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
<title>$createThumbs [Shell Script]</title>
</head>
<body>
<font size="1" face="Verdana,Arial,Courier New">
<pre>
<table style="width: 90%; text-align: left; margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="vertical-align: top;">
<font size="3"><b>${COLLECTION}</b></font><br>
<br><hr>
<center>
EOF

ls ${ORIGIN} | egrep -i "(.bmp$|.gif$|.jpeg$|.jpg$|.png$|.tif$|.pic$)" | while read FILENAME_ORIGIN
do

ACCOUNTANT=$((${ACCOUNTANT}+1))
NEXT=$((${ACCOUNTANT}+1))
PREVIOUS=$((${ACCOUNTANT}-1))
SIZE="`du -k "${ORIGIN}/${FILENAME_ORIGIN}" | awk '{print $1}'`k"

convert -geometry ${THUMB_SIZE} "${ORIGIN}/${FILENAME_ORIGIN}" "${DESTINATION}/${FILENAME_DESTINATION}-${ACCOUNTANT}-mini_size.jpg"
convert -geometry ${HEIGHT}x${WIDTH} "${ORIGIN}/${FILENAME_ORIGIN}" "${DESTINATION}/${FILENAME_DESTINATION}-${ACCOUNTANT}-normal_size.jpg"
cp -f "${ORIGIN}/${FILENAME_ORIGIN}" "${DESTINATION}/${FILENAME_DESTINATION}-${ACCOUNTANT}-original_size.jpg"

# testa se tem anterior e próximo
if ( [ "${ACCOUNTANT}" -gt "1" ] && [ "${ACCOUNTANT}" -lt "${TOTAL}" ] )
then

# template a pagina em normal
cat > "${DESTINATION}/${FILENAME_DESTINATION}-${ACCOUNTANT}-normal_size.html" <<EOF
<html>
<head>
<title>$createThumbs [Shell Script]</title>
</head>
<body>
<center>
imagem (${ACCOUNTANT} de ${TOTAL})<br>
<img src="${FILENAME_DESTINATION}-${ACCOUNTANT}-normal_size.jpg"><br>
[ <a href="${FILENAME_DESTINATION}-${PREVIOUS}-normal_size.html">anterior</a> ][ <a href="../${INDEXNAME}">índice</a> ][ <a href="${FILENAME_DESTINATION}-${NEXT}-normal_size.html">próxima</a> ]<br>
[<a href="${FILENAME_DESTINATION}-${ACCOUNTANT}-original_size.html"> tamanho original (${SIZE}) </a>]<br>
<br><font size=2>Created using  <a href="${URL}">${NAME}</a> version ${VERSION}</font><br>
</center>
</body>
</html>
EOF

# template a pagina em tamanho original
cat > "${DESTINATION}/${FILENAME_DESTINATION}-${ACCOUNTANT}-original_size.html" <<EOF
<html>
<head>
<title>$createThumbs [Shell Script]</title>
</head>
<body>
<center>
imagem (${ACCOUNTANT} de ${TOTAL})<br>
<img src="${FILENAME_DESTINATION}-${ACCOUNTANT}-original_size.jpg"><br>
[ <a href="${FILENAME_DESTINATION}-${PREVIOUS}-original_size.html">anterior</a> ][ <a href="../${INDEXNAME}">índice</a> ][ <a href="${FILENAME_DESTINATION}-${NEXT}-original_size.html">próxima</a> ]<br>
[<a href="${FILENAME_DESTINATION}-${ACCOUNTANT}-normal_size.html"> tamanho normal </a>]<br>
<br><font size=2>Created using  <a href="${URL}">${NAME}</a> version ${VERSION}</font><br>
</center>
</body>
</html>
EOF

# testa se tem próximo
elif [ "${ACCOUNTANT}" = "1" ]
then

# template a pagina em normal
cat > "${DESTINATION}/${FILENAME_DESTINATION}-${ACCOUNTANT}-normal_size.html" <<EOF
<html>
<head>
<title>$createThumbs [Shell Script]</title>
</head>
<body>
<center>
imagem (${ACCOUNTANT} de ${TOTAL})<br>
<img src="${FILENAME_DESTINATION}-${ACCOUNTANT}-normal_size.jpg"><br>
[ anterior ][ <a href="../${INDEXNAME}">índice</a> ][ <a href="${FILENAME_DESTINATION}-${NEXT}-normal_size.html">próxima</a> ]<br><center>[<a href="${FILENAME_DESTINATION}-${ACCOUNTANT}-original_size.html"> tamanho original (${SIZE}) </a>]<br>
<br><font size=2>Created using  <a href="${URL}">${NAME}</a> version ${VERSION}</font><br>
</center>
</body>
</html>
EOF

# template a pagina em tamanho original
cat > "${DESTINATION}/${FILENAME_DESTINATION}-${ACCOUNTANT}-original_size.html" <<EOF
<html>
<head>
<title>$createThumbs [Shell Script]</title>
</head>
<body>
<center>
imagem (${ACCOUNTANT} de ${TOTAL})<br>
<img src="${FILENAME_DESTINATION}-${ACCOUNTANT}-original_size.jpg"><br>
[ anterior ][ <a href="../${INDEXNAME}">índice</a> ][ <a href="${FILENAME_DESTINATION}-${NEXT}-original_size.html">próxima</a> ]<br><center>[<a href="${FILENAME_DESTINATION}-${ACCOUNTANT}-normal_size.html"> tamanho normal </a>]<bt>
<br><font size=2>Created using  <a href="${URL}">${NAME}</a> version ${VERSION}</font><br>
</center>
</body>
</html>
EOF

# testa se tem anterior
elif [ ${ACCOUNTANT} = ${TOTAL} ]
then

# template a pagina em normal
cat > "${DESTINATION}/${FILENAME_DESTINATION}-${ACCOUNTANT}-normal_size.html" <<EOF
<html>
<head>
<title>$createThumbs [Shell Script]</title>
</head>
<body>
<center>
imagem (${ACCOUNTANT} de ${TOTAL})<br>
<img src="${FILENAME_DESTINATION}-${ACCOUNTANT}-normal_size.jpg"><br>
[ <a href="${FILENAME_DESTINATION}-${PREVIOUS}-normal_size.html">anterior</a> ][ <a href="../${INDEXNAME}">índice</a> ][ próxima ]<br><center>[<a href="${FILENAME_DESTINATION}-${ACCOUNTANT}-original_size.html"> tamanho original (${SIZE}) </a>]<br>
<br><font size=2>Created using  <a href="${URL}">${NAME}</a> version ${VERSION}</font><br>
</center>
</body>
</html>
EOF

# template a pagina em tamanho original
cat > "${DESTINATION}/${FILENAME_DESTINATION}-${ACCOUNTANT}-original_size.html" <<EOF
<html>
<head>
<title>$createThumbs [Shell Script]</title>
</head>
<body>
<center>
imagem (${ACCOUNTANT} de ${TOTAL})<br>
<img src="${FILENAME_DESTINATION}-${ACCOUNTANT}-original_size.jpg"><br>
[ <a href="${FILENAME_DESTINATION}-${PREVIOUS}-original_size.html">anterior</a> ][ <a href="../${INDEXNAME}">índice</a> ][ próxima ]<br><center>[<a href="${FILENAME_DESTINATION}-${ACCOUNTANT}-normal_size.html"> tamanho normal </a>]<br>
<br><font size=2>Created using  <a href="${URL}">${NAME}</a> version ${VERSION}</font><br>
</center>
</body>
</html>
EOF

fi

# corpo do index
cat >> ${INDEXNAME} <<EOF
<a href="${DESTINATION}/${FILENAME_DESTINATION}-${ACCOUNTANT}-normal_size.html"><img src="${DESTINATION}/${FILENAME_DESTINATION}-${ACCOUNTANT}-mini_size.jpg" alt=""></a>
EOF

done

# template do index rodapé
cat >> ${INDEXNAME} <<EOF
</center>
<hr>
<center><br><br><font size=2>Created using  <a href="${URL}">${NAME}</a> version ${VERSION}</font><br></center>
</td>
</tr>
</tbody>
</table>
</pre>
</font>
</body>
</html>
EOF
}

while [ $# -gt 0 ]
do
   case $1 in
      --collection*)
         if echo $1 | grep -q '=' >/dev/null
         then
            COLLECTION=`echo $1 | sed 's/^--collection=//'`
         else
            COLLECTION=$2
            shift
         fi
      ;;
      --destination*)
         if echo $1 | grep -q '=' >/dev/null
         then
            DESTINATION=`echo $1 | sed 's/^--destination=//'`
         else
            DESTINATION=$2
            shift
         fi
      ;;
      --file_destination*)
         if echo $1 | grep -q '=' >/dev/null
         then
            FILE_DESTINATION=`echo $1 | sed 's/^--file_destination=//'`
         else
            FILE_DESTINATION=$2
            shift
         fi
      ;;
      --indexname*)
         if echo $1 | grep -q '=' >/dev/null
         then
            INDEXNAME=`echo $1 | sed 's/^--indexname=//'`
         else
            INDEXNAME=$2
            shift
         fi
      ;;
      --origin*)
         if echo $1 | grep -q '=' >/dev/null
         then
            ORIGIN=`echo $1 | sed 's/^--origin=//'`
         else
            ORIGIN=$2
            shift
         fi
      ;;
      --thumb_size*)
         if echo $1 | grep -q '=' >/dev/null
         then
            THUMB_SIZE=`echo $1 | sed 's/^--thumb_size=//'`
         else
            THUMB_SIZE=$2
            shift
         fi
      ;;
      --title*)
         if echo $1 | grep -q '=' >/dev/null
         then
            TITLE=`echo $1 | sed 's/^--title=//'`
         else
            TITLE=$2
            shift
         fi
      ;;
      --height*)
         if echo $1 | grep -q '=' >/dev/null
         then
            HEIGHT=`echo $1 | sed 's/^--height=//'`
         else
            HEIGHT=$2
            shift
         fi
      ;;
      --width*)
         if echo $1 | grep -q '=' >/dev/null
         then
            WIDTH=`echo $1 | sed 's/^--width=//'`
         else
            WIDTH=$2
            shift
         fi
      ;;
      --help|-help|--h|--info|-info*)
         Usage
      ;;
      *)
         echo "Opcao invalida utilizada na funcao $(basename $0) - $1"
         Usage
      ;;
   esac
   shift
done

if ( [ ! -z ${ORIGIN} ] && [ ! -z ${DESTINATION} ] )
then
   TOTAL="`ls ${ORIGIN} | egrep -i "(.bmp$|.gif$|.jpeg$|.jpg$|.png$|.tif$|.pic$)" | wc -l`"
   CreateThumbs
else
   Usage
fi

Scripts recomendados

Relatório de suprimentos da empresa

Fakemail anônimo - sem uso de SMTP

Removendo primeiras ou últimas linhas do arquivo

Texto colorido e centralizado

Monta Pen-Drive Windows no Linux


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts