21.12.2022 Views

python_para_desenvolvedores_2ed

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

304 GIMP

Terminar transação: encerra a transação através da função

pdb.gimp_image_undo_group_end().

Com isso, o processamento realizado pelo plugin terá um comportamento

conforme com outras funcionalidades presentes no software, incluindo a

capacidade de ter a operação desfeita (undo).

Exemplo:

# -*- coding: latin1 -*-

# Importa a interface para o GIMP

from gimpfu import *

def stonify(img, drawable, fracture=135, picture=135):

""""""

# Inicia a transação para UNDO

pdb.gimp_image_undo_group_start(img)

# Cria uma camada de lava

pdb.script_fu_lava(img, drawable, 10, 10, 7,

'German flag smooth', 1, 1, 0)

lava = img.layers[0]

w, h = img.width, img.height

# Cria uma camada de ruído

rock = gimp.Layer(img, 'Rock', w, h, RGB_IMAGE,

100, MULTIPLY_MODE)

pdb.gimp_image_add_layer(img, rock, 0)

pdb.plug_in_solid_noise(img, rock, 0, 0, 0, 1, 4, 4)

# Aplica relevo nas camadas

pdb.plug_in_bump_map(img, rock, lava,

fracture, 45, 15, 0, 0, 0, 0, 1, 0, 0)

pdb.plug_in_bump_map(img, rock, drawable,

picture, 45, 30, 0, 0, 0, 0, 1, 0, 0)

lava.visible = 0

# Combina as camadas da imagem em uma só

img.flatten()

pdb.gimp_brightness_contrast (img.layers[0], 30, 10)

# Termina a transação

pdb.gimp_image_undo_group_end(img)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!