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", "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./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()
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