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

Localizando os arquivos maiores de um diretório com os comandos du e sort

Muitos comandos em sistemas GNU/Linux aceitam a diretiva “-h” ou –human-readable, que geralmente indica que o resultado deve ser gerado em um formato legível para humanos. Nos primórdios dos sistemas Unix/Linux, o resultado de comandos como du e ls era expresso em valores múltiplos de 1024 bytes, ou Kbytes. Sempre precisavamos fazer algumas continhas para chegar no valor correto.

Vejam dois exemplos do comando du, com e sem a diretiva -h:

$ du * | sort -nr
  20072   ./kde-queirozI9edRO
  12      ./CRX_75DAF8CB7768
  8       ./sni-qt_python2.7_2001-3kc5lW
  4       ./.X11-unix
$ du -h * | sort -nr
  20M     ./kde-queirozI9edRO
  12K     ./CRX_75DAF8CB7768
  8,0K    ./sni-qt_python2.7_2001-3kc5lW
  8,0K    ./pulse-UzNo0gdqJI6w
  4,0K    ./.X11-unix

O comando sort também aceita a diretiva -h, que significa –human-numeric-sort. Combinando o resultado do comando du com o comando sort, podemos obter listagens mais completas e voltadas para nossas necessidades mais imediatas.

O comando:

du -h * | sort -h

irá criar uma lista em ordem crescente de tamanho dos arquivos em um determinado diretório.

O mesmo comando poderia ser escrito também como:

du --human-readable * | sort --human-numeric-sort

Como o que normalmente nos interessa é localizar os arquivos que ocupam mais espaço em um determinado diretório, podemos reverter a ordem da listagem, colocando os arquivos maiores no topo da listagem.

Para obter esta listagem, basta reverter a ordem de exibição dos arquivos:

du -h * | sort -h -r
  19M     TerryTate.flv
  6,6M    1_Carlos_Aguerrea_Educacao_para_Paz.ppt
  2,6M    terry-tate.mpg
  2,0M    RELACOES.PUBLICAS.SECRETARIA.DE.SAUDE.2.ppt
  1,4M    Redefining_the_Warrior_2.ppt
  1,3M    comunicacao-empresarial-apresentacao-aulas.ppt
  984K    Setimo_Encontro_Carta_Terra_Mediacao_de_Conflitos_1255114782.ppt
  980K    oficina_comunic.ppt
  884K    nvc_1_.ppt

Referências

Dicas-L

Bloqueando o Ultrasurf

Bloqueando o Ultrasurf através do Netfilter/Iptables – versão 10.08

Creio que o UltraSurf é a maior dor de cabeça para qualquer administrador de rede e security officer na atualidade! Após várias análises em artigos, pesquisas e tentativas sem sucesso, decidi estudar melhor esta aplicação, onde consegui o bloqueio sem ter que fechar as conexões 443 nas redes dos clientes.

Leia mais deste post

Como criptografar uma partição do HD

Encrypting hard disk partition

Autor original: Jesse Smith

Publicado originalmente no: distrowatch.com

Tradução: Roberto Bechtlufft

Pergunta do leitor preocupado com a privacidade de seus dados: Como posso criptografar uma partição?

Leia mais deste post

Instalando e utilizando o Zimbra

O Zimbra, é uma suite colaborativa de e-mail muito poderosa, cujo foco é ser uma alternativa livre ao Microsoft Exchange. Com suas duas versões disponíveis, a versão Network Edition (NE) e a Open Source, ele consegue, no mínimo equiparar-se a solução oferecida pela Microsoft, tendo a sua versão NE voltada a empresas que precisam de suporte e ferramentas de backup mais avançadas.

Leia mais deste post

Debian: servidor de arquivos, antivirus, lixeira e auditoria

  • Ambiente:
    • Sistema básico + Categoria Servidor de Arquivos
    • Disco de instalação (netinst-amd64)
  • Softwares utilizados: Samba+Clamav+Scannedonly
    • Samba: 3.2.5
    • Clamav: 0.95.2
    • Scannedonly: 0.15

Leia mais deste post

Permissões de arquivo mais detalhadas no Linux

Pergunta: Um amigo me disse que o Linux não tem permissões de arquivo tão detalhadas quanto o sistema operacional favorito dele (é, aquele mesmo). Existe alguma maneira de ir além das permissões comuns de dono, grupo e outros e ser mais flexível?

Leia mais deste post

Instalando o PostgreSQL e pgAdmin3 no Ubuntu

A dica de hoje é sobre como instalar o SGBD – Sistema Gerenciador de Banco de Dados – PostgreSQL e sua interface gráfica de administração pgAdmin, muito semelhante à interface do conhecido MySQL, o  phpMyAdmin. Pronto, então mãos à obra!

Leia mais deste post

Instalando o plugin Java 6.20 no Google Chrome

Esta dica é para aqueles que não estão conseguindo instalar o Plugin Java no Google Chrome, e têm dificuldades para visualizar alguns aplicativos que necessitam desse complemento.

Leia mais deste post

Controlando 2 links de internet (roteados) em um gateway Linux com SQUID

Há algum tempo atrás um amigo meu precisou ativar 2 links dedicados e de fornecedores diferentes. Quando o segundo link foi ativado, começou a dor de cabeça. Não é simplesmente colocar o ip da nova operadora e ponto. Deve-se fazer muitas configurações para que isso funcione. E através de pesquisas consegui colocar essa solução para funcionar perfeitamente, veja aqui como ficou e espero que lhe ajude!

Leia mais deste post