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 Scheme
1, 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.
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 GIMP
3 ou leia a documentação sobre Python no GIMP
4.
Este artigo foi cedido para a revista digital 
PZPZine - Ed Fev 2008 e originalmente encontrado em 
http://cleberjsantos.com.br.
 1 Scheme:  http://www.teach-scheme.org/Notes/scheme-faq.html
1 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