você está aqui: Home  → Colunistas  →  Cantinho do Shell

 

Script para geração de thumbnails

Por Fábio Costa

Data de Publicação: 15 de Fevereiro de 2007

O script de hoje é uma colaboração de Fabio Costa e seu objetivo é gerar uma página com miniaturas das imagens de um determinado diretório.

O tratamento das imagens é feito com o utilitário convert, parte do pacote ImageMagick.

#!/bin/bash

i=0
thumbspage="thumbs.html"
thumbsdir="thumbs"
thumbssuffix="thumbs"
pagename="Página de miniaturas"
force=

while getopts 'hn:p:d:s:f' OPT_LETRA
do
  case $OPT_LETRA in
     'h') echo "SCRIPT para geração de páginas de thumbanils"
	  echo
	  echo "thumbs_gen [OPÇÕES]"
	  echo
	  echo "Opções:"
	  echo
	  echo "-h               retorna essa mensagem de erro"
	  echo "-n [nome_pagina] cabeçalho da página de miniaturas"
	  echo "-p [arq_pagina]  nome do arquivo da página"
	  echo "-d [dir_thumbs]  diretório onde ficarão as miniaturas das"
	  echo "                 imagens do diretorio"
	  echo "-s [sufixo]      sufixo a ser adicionado ao nome das miniaturas"
	  
	  echo "-f               sobrescreve arquivos e diretórios existentes"
	  exit 0
	  ;;
     'n') pagename=$OPTARG
	  ;;
     'd') thumbsdir=$OPTARG
	  ;;
     's') thumbssufix=$OPTARG
	  ;;
     'p') thumbspage=$OPTARG
	  ;;
     'f') force="1"
  esac
done

cabecalho="
<HTML>
<HEAD>
<TITLE>
$pagename
</TITLE>
<BODY>
<TABLE width=100%>
<TR>
<H1>$pagename</H1>
"

if [ ! -d "$thumbsdir" ] 
then
  mkdir $thumbsdir
else
  if [ -z "$force" ] 
  then
      echo "Atenção: Diretório de thumbnails existe! Saindo..."
      exit 1
  fi
fi

if [ -f "$thumbspage" -a -z "$force" ]
then
  echo "Atenção: Arquivo HTML da galeria existe! Saindo..."
  exit 1
fi

echo $cabecalho > $thumbspage

for file in `ls | grep -E -e '(gif|jpg|png|bmp)'`; do
    mainfile=`echo $file | cut -d. -f1`
    thumbfile="${thumbsdir}/${mainfile}_${thumbssuffix}.jpg"
    convert -scale 300x200 $file $thumbfile
    case $i in
        0)
            linha="
            </tr>
            <tr>
            <td>
            <a href='$file'>
            <img src='$thumbfile'>
            </a>
            </td>"
            echo $linha >> $thumbspage
            i=1
            ;;
        1) 
            linha="
            <td>
            <a href='$file'>
            <img src='$thumbfile'>
            </a>
            </td>"
            echo $linha >> $thumbspage
            i=0
            ;;
     esac
done

rodape='
</TR>
</TABLE>
</HTML>'

echo $rodape >> $thumbspage

Download deste script

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!

Veja a relação completa dos artigos desta coluna