Gimp Modifier Mélange dans le script Python produit un mélange différent de celui de l'outil de mélange

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

  •  26-12-2019
  •  | 
  •  

Question

J'essaie d'écrire un script qui repousse, bouge et mélange deux images en une utilisation de Gimp 2.8 sur Ubuntu 13.10.

J'ai téléchargé les 2 images nécessaires et les résultats ici: http://imgur.com/a/bjgia

J'ai réussi à faire fonctionner tous mais un point échoue.la commande de mélange.J'ai réduit le problème à la commande pdb.gimp_edit_blend qui au lieu de mélanger le masque de couche avec le fond transparent, il crée un gradient opaque.

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)

Tout le code est ici: http://pastie.org/9079343

Une idée de ce que je fais mal? merci beaucoup

Était-ce utile?

La solution

Votre erreur est à peu près dans votre propre code - vous appelez la fonction de mélange passant le FG_Layer comme premier paramètre, au lieu du masque:

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)
                    ^^^^^^^^

Au lieu de cela, faites le même appel qui passe le masque que le paramètre dessinable (vous l'avez déjà dans la variable "MASQUE"):

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)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top