O objetivo deste plug-in é gerar um conjunto de imagens semelhantes, com a variação de um número, baseadas em um único template. Baixe o template aqui. O arquivo template é um arquivo imagem em formato Gimp (*.xcf) contendo um campo texto (que sua camada deve chamar Text), neste campo que o Script trabalha. Gera um número indicado de imagens e cada uma possui um número sequencial, que será iniciado por um número informado. Desta forma é possível por exemplo, gerar 100 imagens de bolinhas onde cada uma delas possui um número.
# -*- coding: utf-8 -*-Isso instrui o Python a permitir códigos acentuados no padrão UTF-8. E assim, a janela mostrada pode conter os caracteres acentuados:
Outro detalhe que devemos sempre lembrar é relativo a edentação em Python, isso é extremamente importante, pois informa ao compilador que estamos em um método ou em um comando, então o que é opcional em outras linguagens aqui é obrigatório.
Não existe uma forma "prática" de testar esse Script, ou seja, se estiver com erro devemos sair do Gimp modificar o Script e retornar ao Gimp (algumas vezes inclusive é ideal mudar o nome do Script - Cuidado e Atenção).
Mas ao final é apaixonante saber que podemos possuir um total controle sobre este poderoso Editor de Imagens (concorrente do todo poderoso Photoshop) e saber que a partir de agora podemos automatizá-lo de qualquer forma.
Detalhes do Script (já totalmente em português)
# -*- coding: utf-8 -*-
#!/usr/bin/env python
from gimpfu import *
import os
def run(*args):
# Definir os cinco argumentos de Entrada
arquivo, num, tot, nome, dirSaida, zeros = args
# Verificar se foi informado o diretório de saída
dirSaida = os.path.expanduser('~/' + dirSaida)
if not os.path.exists(dirSaida):
os.makedirs(dirSaida)
for i in xrange(1, tot+1):
# Abrir o arquivo de template
im = pdb.gimp_file_load(arquivo, arquivo)
# Nome da camada Texto na template deve ser 'Text'
camada = filter(lambda x: x.name == 'Text', im.layers)[0]
# Adicionar o número para a camada de texto
numStr = str(num)
pdb.gimp_text_layer_set_text(camada, numStr.zfill(zeros))
# Adicionar mais um ao número
num += 1
# Fazer um merge da camada para a imagem...
merged = pdb.gimp_image_merge_visible_layers(im, 0)
# Montar parte do nome do arquivo de saída
nomArqSaida = "%s%d.png" % (nome, i)
# Montar o nome completo do arquivo de saída
nomCompleto = os.path.join(dirSaida, nomArqSaida)
# Salvar o arquivo com extensão PNG
pdb.file_png_save_defaults(im, merged, nomCompleto, nomCompleto)
register(
"gennumero",
"Gerador de números para uma template",
"Gerador de números de template",
"Original: Roman Hwang",
"Adaptado: Fernando Anselmo",
"Maio de 2013",
"/Filters/Fernando/Gerar Número...", "",
[
(PF_FILE, "arg0", "Arquivo Template", ""),
(PF_INT, "arg1", "Primeiro número da sequência", 1),
(PF_INT, "arg2", "Total de imagens a gerar", 30),
(PF_STRING, "arg3", "Nome dos arquivos de saída", ""),
(PF_STRING, "arg4", "Diretório de saída (relativo a pasta USER)", ""),
(PF_INT, "arg5", "Tamanho mínimo do número (completa com zeros)", 1),
], [], run)
main()
Coloquei todos os comentários necessários para que o Script seja auto entendível, mas qualquer dúvida recomendo a consulta do texto original, outro detalhe é que modifiquei um pouco a programação deste.Para instalar o plug-in, copie todo o código para seu editor de códigos favorito (não vale o Word/Write) e salve-o com o nome de "icon_generator.py" na pasta /gimp-2.8/plug-ins (esse número 2.8 é a versão do Gimp). Agora é só abrir o Gimp e acessar o caminho "Filters | Fernando" que estará disponível para uso.
Obrigado e até a próxima
Fernando Anselmo
PS. Toda a documentação sobre a geração do Python com Gimp pode ser obtida aqui.


Grande mestre Fernando, parabéns pelo artigo. Como sugestão, poderia acrescentar uma imagem do resultado do script ? Abraços.
ResponderExcluir