De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


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

Colaboração: Vicente Lima

Data de Publicação: 06 de fevereiro de 2013

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

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 de Vicente Lima