createThumbs
Publicado por Jeferson Alberi da Silva 09/01/2008
[ Hits: 5.521 ]
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
Script para adicionar chave pública
Configuração pós instalação do Slackware
Script para desconexão em horário determinado
Automatizar scan e atualização com o ClamAV
Teste de conexão com o servidor
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (15)
Secure boot, artigo interessante, nada técnico. (4)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









