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

Como unir vários arquivos PDF em um só

Existe uma maneira muito simples no Linux de juntar vários arquivos PDF em um só. Muitas vezes isso é necessário quando temos vários arquivos e queremos levar somente um no bolso. Veja como fazer isso usando o GhostScript.

ghostscript

Para fazer isso, basta usar o GhostScript, e seguir os seguintes passos:

1º Entre na pasta onde estão os arquivos pdf que serão unidos:

$ cd ./caminho_da_pasta_com_os_pdfs/

2º Já na pasta onde se encontram os arquivos pdf, execute o seguinte comando:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=nome_do_arquivo_finalizado.pdf arquivo1.pdf arquivo2.pdf

Simples! Onde:

- nome_do_arquivo_finalizado.pdf: É o arquivo final.

- arquivo1.pdf, arquivo2.pdf: São seus arquivos que deseja unir.
Ou, se você não quiser ficar digitando arquivo por arquivo, basta fazer o seguinte: (eu prefiro esse!)

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=nome_do_arquivo_finalizado.pdf *.pdf

Nesse caso, o GhostScript irá buscar dentro dessa pasta todos os arquivos pdf (*.pdf) e juntá-los.

Espero que tenho ajudado!

Como retirar permissões de um usuário sobre alguns itens na área de trabalho no ubuntu.

Este tutorial mostra como fazer para retirar algumas permissões de um determinado usuário sobre alguns itens na área de trabalho do Ubuntu.

Após essa configuração, o usuário não poderá trocar papel de parede, proteção de tela, mudar as posições dos painéis, entre outras coisas. Mas continuará podendo criar pastas e arquivos na área de trabalho. Saiba mais

Comando Card – Gerando guias de referência para comandos GNU/Linux

Sistemas GNU/Linux possuem um comando bastante útil, chamado card. Este comando gera guias de referência, formatados a partir da página de referência dos comandos (man). Para habilitá-lo, antes de mais nada precisamos instalar o pacote a2ps utilizando o seguinte comando:

# aptitude update
# aptitude install a2ps

Quando invocado sem fornecer opções, ele envia o arquivo gerado diretamente para a impressora:

$ card ls
[/tmp/card.hrNB03/card (Reference Card): 2 pages on 1 sheet]
id solicitado é HP-LaserJet-1018 (0 arquivo(s))
[Total: 2 pages on 1 sheet] sent to the default printer

Mas podemos especificar o nome de um arquivo, que depois podemos copiar para algum outro lugar para estudar:

$ card ls -o ls.pdf
[/tmp/card.p7f3lF/card (Reference Card): 2 pages on 1 sheet]
[Total: 2 pages on 1 sheet] saved into the file `ls.pdf`

A diretiva “-o” define o arquivo para que deverá ser gerado com a saída do comando card, em nosso caso, ls.pdf.
No exemplo acima, o guia de referência será gerado, por padrão, na língua inglesa, mas podemos solicitar que o arquivo será gerado em outro idioma:

$ card ls -l pt_BR -o ls.pdf
[/tmp/card.0LpzMC/card (Reference Card): 3 pages on 2 sheets]
[Total: 3 pages on 2 sheets] saved into the file `ls.pdf`
[11 lines wrapped]

Neste caso, o arquivo ls.pdf será gerado usando o idioma português do Brasil.

Fonte: Dicas-L

Programação Orientada a Objetos com PHP

E aí galera, bom neste post eu estarei abordando um tema muito utilizado nos dias de hoje, que é a programação orientada a objetos.

Nessa em especial estarei utilizando a linguagem PHP, que como todos sabem, é uma linguagem livre e gratuita, sem falar que é a mais utilizada em todo o mundo. Saiba mais

Mudar o Firmware do Android com Softwares Livres

Esse artigo / tutorial eu escrevo repleto de felicidade, pois consegui fazer algo que me fazia crer ser impossível, pois as pessoas que conheço me diziam que não tinha como fazer.

Saiba mais

Linux e a descoberta da partícula de Deus

A distribuição utilizada em todo o processo foi o Scientific Linux. Uma variação do Red Hat que foi considerada uma escolha mais do que bem acertada para o sucesso desta descoberta.

Uma variedade de informações foram postadas no Reddit por um funcionário do CERN para explicar por que o Linux foi a escolha da equipe para analisar os dados do experimento além da ferramenta perfeita para gerenciar toda a rede de computadores do CERN.

Talvez, e não só por isso, o CERN possui uma página dedicada ao suporte e informações sobre o Linux.

Manual Completo do Ubuntu

Boa tarde.

Pra você que utiliza e gosta da distribuição Ubuntu da Canonical, agora você pode baixar o manual completo do dessa distro desde a versão 10.04.

O guia está relativamente muito completo. Porém, até o momento em que redijo este post, ainda não está disponível uma versão em português.

Caso a língua inglesa não seja um empecilho realmente grande para você faça o download do manual através do link:

http://ubuntu-manual.org/downloads

E seja mais um linuxer feliz.

Boa sorte!!!

Como Instalar o Oracle Java 7 no Debian via Repositório

Boa tarde a todos, bom como todos sabem o Debian e algumas outras distribuições linux não oferecem mais suporte oficial ao Java da Oracle por questões de licenças da Oracle. Pois bem, esta dica vem para ajudar àqueles que estão tendo problemas com internet banking, etc.

Essa dica destina-se à usuários do Debian que desejam instalar e manterem-se atualizados com as últimas versões do Oracle Java 7 (JDK7): o WebUpd8 Java 7 PPA funciona no Debian também já que o pacote é apenas um instalador e tudo que você tem a fazer é adicionar manualmente o repositório PPA em Fontes de Aplicativos.

Para adicionar o repositório PPA do WebUpd8 Oracle Java para as fontes de aplicativos no Debian (testado em Debian Squeeze 64 bits, mas deve funcionar com qualquer versão do Debian), use os seguintes comandos:

# echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" > /etc/apt/sources.list.d/webupd8team-java.list
# echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" >> /etc/apt/sources.list.d/webupd8team-java.list
# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
# apt-get update
# apt-get install oracle-java7-installer

E é isso, o Oracle Java 7 (ambos JDK7 e JRE7) agora deve está instalado e você deve receber atualizações automáticas com futuras versões do Oracle Java 7, sobre o Debian.

Até mais.