Existem uma série de funções no módulo gimp que são usadas para criar objetos e construir uma imagem no GIMP. Aqui esta uma lista com descrições destes construtores.
gimp.Image(largura, altura, tipo)
Esta função cria uma nova imagem, que não é mostrada, com as dimensões (em pixels) e tipo.
Uma camada deve ser criada e adicionada antes da imagem ser mostrada, ou a chamada à ‘gimp-display-new‘ com a imagem como argumento irá falhar. Camadas podem ser criadas usando a função ‘gimp.layer’ citada logo abaixo. Elas podem ser adicionadas a imagem usando ‘image.add_layer‘, passando a camada e a sua posição.
Os tamanhos devem ser maiores que 1 e menos que 262144 (somente números inteiros)
Tipo da imagem pode ser
RGB ( 0 ) – colorido
GRAY (1 ) - Tons de cinza
INDEXED ( 2) - cores indexadas ou seja, imagens com tabela de cores.
Este é um procedimento interno do Gimp (gimp-image-new).
Esta função funciona de forma diferente do procedimento interno do Gimp, ela retorna o objeto da imagem, enquanto função interna do Gimp retorna o ID da nova imagem criada.
Exemplo de código de criação de imagem:
myImage = gimp.Image( 100, 100 , GRAY) #cria imagem em modo de cinza myLayer = gimp.Layer( myImage, 'myLayer', 50, 50, GRAY_IMAGE , 50, NORMAL_MODE) #cria camada myImage.add_layer(myLayer,-1) #adiciona camada a imagem gimp.Display(myImage) #mostra a imagem # meus testes na versão GIMP 2.6.8 mostram que não é necessário chamar o displays_fllush #gimp.displays_flush()
gimp.Layer(img, nome, largura, altura, tipo, opacidade, modo)
Cria uma camada que será chamada por nome, com as dimensões e tipo definidos ( uma das constantes *_IMAGE ), opacidade ( número de ponto flutuante entre 0 a 100) e o modo (uma das constantes *_MODE ). A camada pode ser adicional a imagem usando a função img.add_layer. Repare que ela não é adicionada automaticamente a imagem atual. Outros atributos como máscara, e offsets podem ser chamadas quando necessário.
Os tipos de camada possíveis são, repare que originalmente estas constantes tinha “-” como separador, no Python o separador é “_”.
RGB_IMAGE (0)
RGBA_IMAGE (1)
GRAY_IMAGE (2)
GRAYA_IMAGE (3)
INDEXED_IMAGE (4)
INDEXEDA_IMAGE (5)
Os modos de combinação de camadas possíveis são:
NORMAL_MODE (0)
DISSOLVE_MODE (1)
BEHIND_MODE (2)
MULTIPLY_MODE (3)
SCREEN_MODE (4)
OVERLAY_MODE (5)
DIFFERENCE_MODE (6)
ADDITION_MODE (7)
SUBTRACT_MODE (8)
DARKEN_ONLY_MODE (9)
LIGHTEN_ONLY_MODE (10)
HUE_MODE (11)
SATURATION_MODE (12)
COLOR_MODE (13)
VALUE_MODE (14)
DIVIDE_MODE (15)
DODGE_MODE (16)
BURN_MODE (17)
HARDLIGHT_MODE (18)
SOFTLIGHT_MODE (19)
GRAIN-EXTRACT_MODE (20)
GRAIN_MERGE_MODE (21)
COLOR_ERASE_MODE (22)
ERASE_MODE (23)
REPLACE_MODE (24)
ANTI_ERASE_MODE (25)
A chamada a função retorna o objeto da camada.
O código completo do plugin que gera uma imagem em tons de cinza:
#! /usr/bin/python __author__="Eduardo 'Trialforce' Bonfandini" __date__ ="$29/08/2010 14:53:06$" from gimpfu import * def pythonPluginExample(img, tdrawable): """Gimp example plugin""" myImage = gimp.Image( 100, 100 , GRAY ) myLayer = gimp.Layer( myImage, 'myLayer', 50, 50, GRAY_IMAGE , 50, NORMAL_MODE) myImage.add_layer(myLayer,-1) gimp.Display(myImage) #gimp.displays_flush() register( "python_fu_pluginExample", "Example Plugin", "Example Plugin Ilustrated how to do things", "Eduardo 'Trialforce' Bonfandini", "Eduardo 'Trialforce' Bonfandini", "2010", "<Image>/Filters/Generic/_PluginExample...", "RGB*, GRAY*", [], [], pythonPluginExample) main()
O Resultado gerado pelo script:
O Link para o meu repositório de plugin/teste/exemplos de Python-Gimp.
http://code.google.com/p/trialforce/source/browse/trunk/python/pluginGimp/
Abraço a todos.
Construtores e remoção de objetos
Existem uma série de funções no módulo gimp que são usadas para criar objetos e construir uma imagem no GIMP. Aqui esta uma lista com descrições destes construtores.
0sem comentários ainda