createThumbs

Publicado por Jeferson Alberi da Silva 09/01/2008

[ Hits: 4.324 ]

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

Script para impressao em codigo de barras.

Tabela do Campeonato Brasileiro Direto no Terminal

Screenserver no modo texto - versão 2

Backup em HD Externa com Rsync

DownloadVideo


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts