createThumbs
Publicado por Jeferson Alberi da Silva 09/01/2008
[ Hits: 5.143 ]
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
Catsort - Concatenar resultado filtrando e removendo repetidas
Solução para bloquear totalmente o Facebook em sua rede
Configuração do Iptables em modo texto.
xpock-dl: baixe vídeos do xpock.com.br
Backup de N diretórios e arquivos
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (0)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (3)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta