Automatização de tarefas no GIMP através do uso de scripts e plugins…

… não é só possível, como também é algo relativamente “fácil” de fazer! Por ser um dos mais antigos e populares aplicativos de código-aberto disponível no mercado, o GIMP (GNU Image Manipulation Program) é bastante flexível, em vista do seu suporte nativo para plugins e scripts, possibilitando automatizar uma série de tarefas e rotinas que se fossem feitas de forma manual, levaria um bom tempo para serem concluídas. Desenvolvê-los por conta própria, não é uma tarefa muito complicada, pelo fato desta poder ser feita com uma das linguagens de programação mais fáceis de aprender e dominar: Python…

“If you’re looking for a Photoshop alternative, then GIMP is probably one of the best out there. It’s free, it’s fast, and it’s open source. One of its most powerful features is its scripting and Python support, which gives you complete control over the application to automate processes that you would normally do by hand. We’ll show you how you can make your own Python-based plugins for GIMP, with a sample program that can batch-resize images and imprint a basic watermark on them.”

— by XDA Developers.

Adam Conway (editor do portal XDA Developers) publicou uma simples demonstração, na qual ele utiliza os próprios recursos oferecidos pela aplicação, que por sua vez já trás o suporte para a linguagem de programação Python, dispensando a instalação dela e de outros componentes externos. Inclusive, poderemos utilizar até mesmo a pasta Plugins já existente, para armazenar o script personalizado que será criado como exemplo prático. Esta pasta se encontra acessível em Configurações -> Preferências -> Pastas.

A seguir, será necessário utilizar uma IDE (de sua preferência) para auxiliar na codificação do plugin (ou script) em questão e a escolha de Conway (como era de se esperar) foi o popular Microsoft Visual Studio Code. Além de prover todos os ajustes para deixar a IDE “afinada” com o Python (através das extensões), será necessário importar o módulo GimpFu, o qual irá prover o suporte para a utilização dos recursos nativos do GIMP. Por fim, se preocupe apenas com os erros lógicos e de sintaxe que poderão ser notificados através da IDE, já que os demais se darão pela chamada de funções que não existem fora do GIMP.

A partir daí, Conway criou um simples plugin que automatiza todo o processo de edição de imagens em lote, acessando todos os arquivos armazenados em uma pasta para redimensioná-los, além de atribuir uma marca d’água (no canto inferior direito) para identificar as suas origens. Embora este seja um script relativamente básico (pois já existem várias ferramentas que fazem estas tarefas de forma mais eficiente), o objetivo principal do exemplo é apenas demonstrar o uso de recursos e das funções já embutidas no GIMP, além do poder e da flexibilidade de Python.

Se vou criar plugins e scripts personalizados para o GIMP com o Python? Náh! Embora seja uma das aplicações que mais utilizo em minha estação de trabalho, apenas me limito a usar os recursos e as funcionalidades básicas deste incrível editor de imagens, juntamente com a ferramenta de visualização e tratamento básico gThumbs. No entanto, não posso ignorar a fonte de aprendizado que estas demonstrações podem oferecer, já que muitas aplicações e serviços oferecem APIs robustas e acessíveis, para que possamos acessar os seus recursos.

Mas se desejarem, vocês (desenvolvedores) podem aperfeiçoar este código… &;-D