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

Recomende este artigo nas redes sociais

 

 

Veja a relação completa dos artigos desta coluna