GIMP Editar mezcla en Script de Python produce una mezcla diferente que la herramienta de mezcla

StackOverflow https://stackoverflow.com//questions/23058643

  •  26-12-2019
  •  | 
  •  

Pregunta

Estoy tratando de escribir un script que se reubiza, mueve y mezcla dos imágenes en uno con GIMP 2.8 en Ubuntu 13.10.

Subí las 2 imágenes necesarias y los resultados aquí: http://imgur.com/a/bjgia

Me las arreglé para que todos se ejecuten, pero un punto falla.el comando de la mezcla.Reduje el problema al comando pdb.gimp_edit_blend, que en lugar de mezclar la máscara de capa con el fondo transparente, crea un gradiente opaco.

image = gimp.image_list()[0]  #image is 237x300 png like above
pdb.gimp_image_resize(image, 300, 300, -100, 0)
fg_layer = pdb.gimp_image_get_active_layer(image)
mask = pdb.gimp_layer_create_mask(fg_layer,ADD_WHITE_MASK)
pdb.gimp_image_add_layer_mask(image, fg_layer, mask)

# from here it goes wrong, if I skip this step than I can get the correct result
# using the gimp blent tool from the gui using the same settings as here
pdb.gimp_edit_blend(fg_layer, FG_BG_RGB_MODE, NORMAL_MODE, GRADIENT_LINEAR, 100, 0, 0, True, False, 0, 0, True, 0, 150, 150, 150)

El código completo está aquí: http://pastie.org/9079343

¿Alguna idea de lo que estoy haciendo mal? Muchas gracias

¿Fue útil?

Solución

Su error es bastante en su propio código: está llamando a la función de fusión que pasa El FG_layer como el primer parámetro, en lugar de la máscara:

pdb.gimp_edit_blend(fg_layer, FG_BG_RGB_MODE, NORMAL_MODE, GRADIENT_LINEAR, 100, 0, 0, True, False, 0, 0, True, 0, 150, 150, 150)
                    ^^^^^^^^

En su lugar, haga la misma llamada que pase la máscara como el parámetro Dibujable (ya lo tiene en la variable "Máscara"):

pdb.gimp_edit_blend(mask, FG_BG_RGB_MODE, NORMAL_MODE, GRADIENT_LINEAR, 100, 0, 0, True, False, 0, 0, True, 0, 150, 150, 150)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top