createThumbs
Publicado por Jeferson Alberi da Silva 09/01/2008
[ Hits: 5.615 ]
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
xpock-dl: baixe vídeos do xpock.com.br (v20071030)
Desligando o computador quando acabarem as músicas na sua lista de reprodução do MPD
Instalação de servidor LAMP com PHP 7 no Mint
Nenhum comentário foi encontrado.
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Como fazer a conversão binária e aplicar as restrições no Linux
Como quebrar a senha de um servidor Linux Debian
Como bloquear pendrive em uma rede Linux
Um autoinstall.yaml para Ubuntu com foco em quem vai fazer máquina virtual
Instalar GRUB sem archinstall no Arch Linux em UEFI Problemático
Formas seguras de instalar Debian Sid (12)
Malware encontrado em extensões do Firefox. (0)
Fiz uma pergunta no fórum mas não consigo localizar [RESOLVIDO] (21)









