Edição de imagens no Linux

Veja nesse post duas ferramentas poderosas para edição de imagens no Linux (uma com interface gráfica e outra por linha de comando, o que permite editar vários arquivos de uma vez só): GIMP e ImageMagick.

GIMP

O GNU Image Manipulation Program (GIMP) é um programa de código aberto voltado principalmente para criação e edição de imagens e também para desenho vetorial. Foi criado por estudantes como uma alternativa livre ao Adobe Photoshop. O seu formato inovador de várias janelas separadas assusta um pouco os iniciantes. Caso suma alguma janela, você pode restaurar a configuração original no menu Editar > Preferências > Gerenciamento de Janelas e clicar em "Restaurar posições salvas das janelas para os valores padrão". Veja esse tutorial de instalação e uso do GIMP:

Um outro exemplo de uso pode ser visto no post "Como editar uma foto para perfil profissional".

Dois conceitos importantes são os filtros e as camadas. Os filtros servem para limpar ou retocar imagens, aplicar efeitos artísticos especiais ou criar transformações usando efeitos de distorção, etc. As camadas são como folhas de acetato empilhado: através das áreas transparentes de uma camada, é possível ver as camadas de baixo, sendo possível também alterar sua opacidade para tornar o conteúdo parcialmente transparente e alterar sua posição relativa. As camadas são usadas para realizar tarefas como a composição de várias imagens, adição de texto em uma imagem ou adição de formas de vetores gráficos.

O GIMP permite instalar plugins, facilitando seu trabalho. Por exemplo, o plugin Pandora ajuda a fazer panoramas com várias fotos. Para instalar, baixe o arquivo .scm no site do Pandora e copiei o arquivo para uma pasta oculta que na home do seu perfil (.gimp-versão). No GIMP, vá em Arquivo > Abrir como camadas e depois em Filtros > Combinar > Arrange as panorama. Depois bastam os ajustes finos.

Para incluir fontes no Gimp, você deve ter um ou mais arquivos do tipo ".ttf" ou alguma fonte compatível - pode baixar os arquivos do Google Fonts, por exemplo. Os arquivos devem ser copiados para uma pasta oculta no seu perfil de usuário. A localização dessa pasta pode ser verificada abrindo o menu Editar -> Preferências -> Pastas ("/home/user/.gimp<version>/fonts", por exemplo).

Geralmente as fotos tiradas com o celular ficam sem todos aqueles tons de amarelo e laranja de um pôr do sol. Veja essa dica de como valorizar o amarelo do pôr do sol: no menu, clique em Cores -> Matriz saturação -> Selecione cor primária para modificar (amarelo) -> Modifica a matriz selecionada (Saturação 100%).

Antes e depois da aplicação do efeito para valorizar o amarelo do pôr do sol no Gimp. Foto: ViniRoger.

Antes e depois da aplicação do efeito para valorizar o amarelo do pôr do sol no Gimp. Foto: ViniRoger.

Muitas vezes, o objetivo da foto é um objeto que está em primeiro plano , mas um segundo plano visualmente poluído tira o foco. Nesse caso, para valorizar o objeto principal, pode-se desfocar o segundo plano passando a ferramenta "Desfocar" (simbolizada por uma gota na caixa de ferramentas). No diálogo de opções da caixa de ferramentas logo abaixo, é possível mudar a intensidade ou o tamanho do pincel, dentre outras ações.

Ainda falando em melhorar a parte artística de uma imagem, também é interessante às vezes recortar um pouco do chão e do céu para dar um enquadramento melhor no objetivo da foto. Pode-se, por exemplo, também tirar uma foto com grande resolução e recortar somente um retângulo onde interessa mais.

ImageMagick

A ferramenta ImageMagick pode ser instalada através do comando "sudo apt-get install imagemagick" e consiste em vários programas (comandos) separados, cada um com uma função (veja algumas delas):

  • display – Mostra imagens ou sequências de imagens na tela
  • identify – Mostra informações e características de uma imagem
  • convert – Converte e altera imagens em diversos formatos e formas criando um novo arquivo
  • mogrify – Mesma coisa que o convert, só que sobrescreve os arquivos que está trabalhando

A sintaxe básica é "[comando] [-opções] [arquivo_origem] [arquivo_destino]". Veja alguns exemplos (mais opções de operadores estão nos sites do imagemagick e do about.com):

# Redimensionamento da imagem
$ convert -resize 50% $new_file $new_file
$ convert -resize '800x600' $new_file $new_file

# Modificar a qualidade
$ convert -quality 80% $new_file

# Rotacionar a imagem
$ convert -rotate 90 $new_file $new_file
$ convert -rotate 270 $new_file $new_file

# Converter a imagem
$ mogrify -format $ext $new_file

O script a seguir (resize_images.sh) serve para quando você tem muitas fotos com resolução alta e não precisa disso tudo para simplesmente vê-las no computador, mas deseja quem elas ocupem menos espaço em disco. Esse script recebe como entrada o nome do subdiretório que terá as imagens redimensionadas, retira os espaços em brancos dos nomes dos arquivos e pastas desse nível informado e também muda a extensão do arquivo de maiúscula para minúscula. O script cria um arquivo temporário com as novas definições de tamanho: caso a figura criada seja maior que a original, ele não substitui o arquivo (provavelmente porque redimensionou uma imagem para um tamanho maior do que o original, degradando o arquivo); ou seja, somente atualiza a imagem se for reduzir o tamanho ocupado em disco.

#!/bin/bash
# Redimensionar imagens
# Cuidado com arquivos que tenham pontos no nome (ex: ka_23.09.jpg)

subpasta=$1
# diretório dos arquivos originais
dir_atual=`pwd`
source_images=$dir_atual'/'$subpasta
echo $source_images
cd $source_images

# Substituir espaços em branco por underlines
rename 'y/ /_/' *

# Mudar extensão de maiúscula pra minúscula
ext_gr='JPG'
ext_min='jpg'
for original in *.$ext_gr; do
   nome=`echo $original | awk -F"." '{print $1}'`
   extensao=`echo $original | cut -d'.' -f2`
   new_file=$nome'.'$ext_min
   mv $original $new_file
done

# Redimensionar imagens
for original in *.jpg; do
   echo $original
   tamanho=`du -b $original`
   tamanho_original=`echo $tamanho | awk -F" " '{print $1}'`
   nome_temporario=$original'_temp'
   # Define valor máximo de largura, mantendo a razão de aspecto
   convert -resize "800" $original $nome_temporario
   # Somente atualizar arquivo se tiver tamanho menor
   tamanho=`du -b $nome_temporario`
   tamanho_temp=`echo $tamanho | awk -F" " '{print $1}'`
   if [ "$tamanho_temp" -lt "$tamanho_original" ]; then
      mv $nome_temporario $original
   else
      rm $nome_temporario
   fi
done

O comando a seguir permite criar uma GIF animada para todas as imagens de um mesmo diretório - a opção "delay" indica o número de frames (FPS=100/50=2) e "-dispose Background" permite transparência:

$ convert -delay 50 -dispose Background *.png -loop 0 exemplo.gif

Outra opção é a de juntar várias imagens em um arquivo PDF (veja esse exemplo):

$ convert imagem1.jpg imagem2.png imagem3.gif imagem4.jpg arquivo-saida.pdf

Conversão de imagem em texto

Também é possível utilizar o ImageMagick para preparar a imagem para sua conversão em texto através de outro software. Primeiro deve-se converter a imagem para escala de cinza, aumentar o brilho e o contraste e rotacionar, se for o caso - veja os comandos utilizados mais abaixo. Por fim, está pronta para servir de entrada para o Tesseract: software de reconhecimento ótico de caracteres de código aberto, originalmente desenvolvido pela Hewlett-Packard e atualmente mantido pelo Google. Ele converte texto puro em uma única coluna, convertendo a saída em um arquivo txt. Como não possui mecanismos para reconhecimento de layout, não é recomendável para textos que possuam imagens, fórmulas ou mais de uma coluna. Pode ser instalado através de "sudo apt-get install tesseract-ocr tesseract-ocr-por" - suporte para português.

convert img_color.png -set colorspace Gray -separate -average img_pb.png
convert img_pb.png -brightness-contrast 20,40% img_brcon.png
convert img_brcon.png -rotate 90 img_rot.png
tesseract img_rot.png texto.txt -l por

Links:

Compartilhe o link desse texto, mas se for copiar algum trecho, cite a fonte. Valorize nosso trabalho.
Mais informações na licença de uso do site.

7 Pingbacks/Trackbacks