createThumbs
Publicado por Jeferson Alberi da Silva 09/01/2008
[ Hits: 5.276 ]
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
Descom.sh - Descompactador de arquivos
Para quem esquece facil das coisas
Rastreando suas encomendas dos Correios
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)