J'ai créé une image dans GIMP 2.8 avec plusieurs chemins en utilisant Select -> To Path
. Maintenant, je veux créer un script Python qui parcourra tous ces chemins, faire une sélection en fonction de chaque chemin, couper la sélection à une nouvelle image, faire des choses supplémentaires, et enregistrer chaque découpe dans une image PNG séparée .GIMP Python, la sélection basée sur le chemin n'est pas la même que celle du menu "From Path"
Jusqu'à présent, j'ai ce script Python, que je peux commencer à partir Filters -> Paths
comme un élément de menu:
#!/usr/bin/env python
# coding: utf-8
from gimpfu import *
import os
def export_paths_to_pngs(img, layer, path, vis):
# get all paths (internally called "vectors")
cnt, vectors = pdb.gimp_image_get_vectors(img)
if (cnt > 0):
# iterate all paths
for n in vectors:
v = gimp.Vectors.from_id(n)
# only visible paths
if (v.visible):
st = v.strokes
sufix = 0
# iterate all strokes in vector
for ss in st:
type, num_pnts, cntrlpnts, closed = pdb.gimp_vectors_stroke_get_points(v, ss.ID)
pdb.gimp_image_select_polygon(img, CHANNEL_OP_REPLACE, len(cntrlpnts), cntrlpnts)
# tell gimp about our plugin
register(
"python_fu_export_paths_to_png",
"Export paths as png files",
"Export paths as png files",
"BdR",
"BdR",
"2017",
"<Image>/Filters/Paths/Export paths to png", # menu path
"", # Create a new image, don't work on an existing one
[
(PF_DIRNAME, "export_directory", "Export destination directory", "/tmp"),
(PF_TOGGLE, "p2", "TOGGLE:", 1)
],
[],
export_paths_to_pngs
)
main()
Cependant, le problème est que la fonction python gimp_image_select_polygon
ne fait pas de sélection comme prévu . La sélection semble avoir quelques différences dans les courbes de Bézier (ou quelque chose comme ça) qui n'est pas exactement le même que le chemin sur lequel elle est basée. D'autre part, l'élément de menu From Path
fonctionne correctement, il fait une sélection parfaite basée sur le chemin. Voir image ci-dessous:
Mes questions sont les suivantes:
- Quelle est la différence entre l'élément de menu
Select -> From Path
et la fonction GimpPythongimp_image_select_polygon
- Suis-je utiliser la fonction
gimp_image_select_polygon
de manière incorrecte, ou Y at-il une autre fonction que je devrais utiliser? - A défaut, est-il possible d'appeler en quelque sorte l'élément de menu
From Path
directement à partir de Python?
Merci 'pdb.gimp_image_select_item' est exactement ce que je cherchais. Et aussi merci de souligner la boucle 'for' simplifiée. – BdR