2017-07-25 3 views
2

In welcher Weise kann mein Python-Skript eine Textzeichenfolge mit dem Namen eines Bildes erhalten, das momentan in Image Node ausgewählt ist? Ich denke, es ist richtig zu tun mit benutzerdefinierten Node Label, aber kann kein Snippet finden, die Methode beschreibt.Wie bekomme ich Blender Compositor Bildknoten ausgewählten Bildnamen?

Image

Script muss global arbeiten, auch wenn kein irgendein Knoten ausgewählt, wenn möglich.

+0

So können Sie ein Bild Knoten in einem NodeTree oder NodeSocket ausgewählt und möchten den Dateinamen bekommen? –

Antwort

0

Hoffnung, dies hilft Ihnen aus:

nodes = material_slot.material.node_tree.nodes 
    texture_node = nodes.get('Image Texture') 


    if texture_node is None: 
     texture_node = nodes.new(type='ShaderNodeTexImage') 
     #texture_node.image = image 

    # Get the image name 
    texture_name = texture_node.image.name 
    # Set the node name/label to image name 
    texture_node.name = texture_name 
    texture_node.label = texture_name 

wenn Sie einen vorhandenen Knoten erhalten möchten, aber Sie mehrere Texture Knoten haben, könnten Sie wahrscheinlich Iterierte Trog alle Knoten und alle Knoten des Typs „TEX_IMAGE“ finden und einstellen der Name

EDIT: ich gesehen habe Sie nur ein Bild hinzugefügt, und Sie arbeiten nicht mit Texturen, tut mir leid, dass gleiche Prinzip gilt, wie oben für die Bild Knoten obwohl

bpy.data.scenes['Scene'].node_tree.nodes['Image'].image.name 
+1

Danke, es ist genau das, was ich brauche - in deinem EDIT: bpy.data.scenes ['Szene']. Node_tree.nodes ['Bild']. Image.name – maxdudik

+0

froh, dass es geklappt hat! Ich dachte, dass Sie die Knotengrundlagen auf Bildnamen programmatisch umbenennen möchten (deshalb schlug ich vor, durch alle Knoten zu iterieren), aber wenn Sie wissen, welcher Knoten Sie zielen möchten, dann ist es einfacher! –

0

Sie können die Compositor Knoten in bpy.context.scene.node_tree.nodes finden, dann durchlaufen Sie sie und überprüfen, ob der Typ IMAGE ist.

import bpy 
for n in bpy.context.scene.node_tree.nodes: 
    if n.type == 'IMAGE': 
     # check that there is an image selected 
     if n.image is not None: 
      print(n.image.name) 

Wenn Sie nur ein Bild Knoten wollen, der ausgewählt wird, fügen Sie if n.select:

Verwandte Themen