Script para redução em lote do tamanho de imagens


Este script realiza a redução em lote do tamanho das imagens localizadas em um diretório e grava a imagem reduzida em um outro diretório indicado na linha de comando.

O script aceita/requer três parâmetros para sua execução: a pasta de origem (onde se encontram os arquivos a serem reduzidos), a pasta de destino e o fator de redução da imagem.

Segue o script:

#!/bin/sh
  
  if [ -z $1 ] # se for nulo o primeiro parametro passado para o script
  then
  
  echo "\n Script para reduzir tamanho de imagens (*.jpg)
  Converte todas as fotos (*.jpg) da pasta indicada para uma pasta indicada.

  Indique uma pasta para os novos arquivos que serao criados.
  Os novos arquivos terao os mesmos nomes.
  CUIDADO: Os arquivos originais somente serao alterados caso voce
  indique a pasta de destino igual a de origem.
  E' necessario o programa *ImageMagick*

  Parametros:

  fotoDiminuir <origem> <destino> <porcentagem>

  <origem> caminho de onde as fotos estao 
  <destino> caminho de destino para fotos menores
  (se a pasta de destino nao existir, ela sera criada)
  <porcentagem> porcentagem desejada do tamanho da foto original.
  (Este parametro eh opcional)
  caso nao seja informado a nova imagem tera 50%

  Exemplos: 

  fotoDiminuir /pastaOrigem /pastaDestino 30 
  fotoDiminuir /pastaOrigem /pastaOrigem/menor 
  \n"
  
  exit 0
  fi
  
  # validar os parametros
  
  # validar existencia da pasta de origem
  if [ ! -d "$1" ]; then
  echo "\n erro: pasta de origem nao existe. "
  echo " $1 -> nao eh uma pasta valida"
  exit 1
  fi
  
  # validar se foi passado o segundo parametro
  if [ -z $2 ];then
  echo "\n erro: faltando a pasta de destino."
  echo " Voce deve informar uma pasta para as imagens alteradas."
  echo " Para ajuda, execute novamente sem nenhum parametro. \n"
  exit 1
  fi
  
  pastaOrigem=$1
  pastaDestino=$2
  porcentagem=$3
  
  
  # caso nao exista, criar diretorio de destino
  if [ ! -d "$2" ]; then
  echo " criando dir: " "$2"
  mkdir "$2"
  fi
  
  # por padrao reduz a imagem em 50%
  if [ -z $3 ];then
  porcentagem="50"
  fi
  
  for i in $(ls "$1"/*.jpg |xargs -n1 basename)
  do
  convert -resize "$porcentagem"% "$1/$i" "$2/$i"
  done
  
  exit 0

Referências:

Dicas-L

Conte-nos o que achou...

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: