Escrevendo scripts no GIMP, pintando a cobra

Muitos usuários e designers estão voltando a atenção para o GIMP quando precisam editar uma imagem, trocando softwares proprietários por este, que é a grande atração do mundo livre quando o assunto é manipulação de imagens.

[ Hits: 11.736 ]

Por: Cleber J Santos em 14/01/2009


Escrevendo scripts no GIMP, Pintando a cobra



O GIMP - GNU Image Manipulation Program ou Programa GNU para Manipulação de Imagens - possui um belo cardápio de funções, e nem todos sabem que é possível automatizar tarefas repetitivas por meio de scripts escritos com a linguagem popular Python.

Felizmente, o GIMP possui uma interface de programação integrada que permite aos usuários se aventurar em desenvolver scripts para facilitar o trabalho e automatizar tarefas, fãs de outras linguagens de programação já propuseram e até mesmo implementaram alternativas à linguagem Scheme1, no qual em geral não era considerada nada prazerosa.

Há, por exemplo, uma interface para a linguagem Perl chamada de GIMP-Perl. Essa interface está tão avançada e desenvolvida que é possível interpretar scripts e modificar imagens sem que a interface gráfica do GIMP tenha sido chamada.

Você deve estar se perguntando: "E onde o Python entra?", é simples, O Python já garantiu seu lugar como alternativa viável ao Scheme, o GIMP-Python2 está disponível em praticamente todas as distribuições Linux.

Tenha como seu melhor amigo a ferramenta PDB - Procedural Data Base (Figura 1), é o navegador para banco de dados de procedimentos, o PDB está localizado em Xtns | Python-Fu | PDB Browser (Extras | Python-Fu | PDB Browser). Ele lista as funções disponíveis para programadores de scripts GIMP. Por exemplo, file_jpeg_load, que carrega uma imagem no padrão jpeg no GIMP.
Linux: Escrevendo scripts no GIMP, Pintando a cobra
Figura 1: O navegador integrado de scripts do GIMP com o campo de busca no canto inferior esquerdo.

A estrutura básica de um plugin em Python é muito simples, é usada uma chamada ao método register para que o novo plugin seja registrado no GIMP, e algumas funções que contemplam o serviço.

No exemplo que mostraremos, será um plugin simples que fará pipocar uma mensagem na tela, utilizando nosso amigo PDB, encontraremos a função gimp_message, que possui apenas um parâmetro: A mensagem que desejamos exibir.

O método para registro do plugin register requer não menos que onze parâmetros, na seguinte ordem: nome do plugin, descrição, texto de ajuda, autor, dados de copyleft ou copyright, data, caminho no menu, formatos de imagens permitidos, parâmetros do puglin, buffer de memória para o valor de retorno e função de trabalho. A primeira chamada que o plugin recebe deve ser para o main().

Em nosso exemplo estamos usando o plugin chamado plugin_fu_simple, este é o nome que nós vamos usar para chamar o plugin depois do registro, então vejamos nosso exemplo de plugin:

01   #!/usr/bin/python
02    from gimpfu import *
03
04    def python_simple(img, drawable):
05      gimp.message("Exemplo Simples")
06
07    register(
08      "python_fu_simple",
09      "Mostra uma caixa de diálogo.",
10      "Ajuda: Mostra uma caixa de diálogo simples.",
11      "Cleber J Santos",
12      "PZPZine",
13      "2008",
14      "<Image>/Python/Simple",
15      "*",
16      [],
17      [],
18      python_simple)
19    main()

A listagem acima mostra um exemplo simples mas funcional de nosso plugin, a função do plugin é chamada python_fu_simple (linha 08), a função de trabalho sempre tem parâmetros img e drawable (linha 04), que o GIMP automaticamente passa à função - a lista de parâmetros de entrada na linha 16 está vazia, como não manipularemos imagens com este nosso exemplo, não temos necessidade de passar estes parâmetros. A linha 04 mostra como carregar o módulo GIMP no Python.

Para testar o exemplo que acabamos de desenvolver, salve a listagem (sem os números) no diretório ~/.gimp/plug-ins com o nome de simple.py, possivelmente o diretório do GIMP em seu /home/usuário pode estar com um nome diferente, como .gimp-2.2 ou coisa parecida. Torne o script executável (chmod +x simple.py) e inicie o GIMP.

Agora crie uma nova imagem (File | New), deverá haver um item Python | Simple no menu de contexto. Obviamente este exemplo não faz nada de realmente útil, se você desejar se aprofundar em programação de scripts para o GIMP e criar modelos triviais, visite o site do GIMP3 ou leia a documentação sobre Python no GIMP4.

Este artigo foi cedido para a revista digital PZPZine - Ed Fev 2008 e originalmente encontrado em http://cleberjsantos.com.br.

splash.gif1 Scheme: http://www.teach-scheme.org/Notes/scheme-faq.html
2 PyGimp: ftp://ftp.daa.com.au/pub/james/pygimp/
3 GIMP: http://www.gimp.org
4 Documentação sobre Python no GIMP: http://www.gimp.org/docs/python/structure-of-plugin.html



   

Páginas do artigo
   1. Escrevendo scripts no GIMP, Pintando a cobra
Outros artigos deste autor

Assembler no Linux

Ajustando o desempenho de discos rígidos

Screen, eita ferramenta porreta!

Linux (kernel) - A história do seu criador

FreeBSD + Zope/Plone, uma idéia frustrante?

Leitura recomendada

Como conheci o GNU/Linux

CUIDADO com o comando "dd", embora muito útil ele pode ser perigoso

Acessando computadores remotos protegidos por NAT ou firewall com túnel SSH reverso direcionado por DNS dinâmico

Instalação automatizada de servidores com Kickstart (parte 2)

Técnicas de memorização para facilitar o uso VI (Comandos básicos)

  
Comentários
[1] Comentário enviado por albfneto em 11/03/2009 - 19:45h

Parabéns, Cleber.
Todos os seus artigos são de alto nível!

[2] Comentário enviado por cleberjsantos em 12/03/2009 - 09:15h

Muito obrigado, espero que este e e outros artigos possam ajudar bastante ;-)

Att,

Cleber J Santos
http://www.cleberjsantos.com.br

[3] Comentário enviado por wellingto em 03/05/2009 - 20:49h

Olá pessoal, alguem pode me adr uma ajuda como eu posso instalar plugins e scripts no meu gimp2.6 no meu linux, eu uso o brlix, que é baseado no debian agradeço a quem poder tambem me mandar por email, porque é dificil achar esta pagina, fora quando eu add no favoritos!
Obrigado pela atenção!

[4] Comentário enviado por cleberjsantos em 04/05/2009 - 09:25h

Caro Wellingto,

Conforme o tutorial acima, você viu se existe a pasta ~/.gimp/plug-ins em seu Home?

PS. Te enviei uma resposta por email também, mas acho importante responder aqui, sua dúvida pode ser a a dúvida de mais pessoas.


Att,

Cleber J Santos
http://www.cleberjsantos.com.br


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts