createThumbs
Publicado por Jeferson Alberi da Silva 09/01/2008
[ Hits: 5.039 ]
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.
#!/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
Relatório de suprimentos da empresa
Fakemail anônimo - sem uso de SMTP
Removendo primeiras ou últimas linhas do arquivo
Monta Pen-Drive Windows no Linux
Nenhum comentário foi encontrado.
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Não consigo acessar os modos de desempenho (1)
Criar um script para testar pen drive (5)
Problema com alias usando locate (4)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba