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.481 ]

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

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

Ajustando o desempenho de discos rígidos

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

Software Livre é o futuro

Leitura recomendada

Backup remoto usando SSH

Analogia: X-Window como um sistema operacional

Terceira experiência com o Basic Linux

Filosofia do Open Source, um novo jogo?

Transformando Windows em Linux

  
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