Neueste Meldungen
Rhino 8: Layouts erstellen – Anleitung zu Detailansichten und MaßstäbenNapoli: Metrostation von EMBT mit Platz und Dach aus Brettschichtholz fertiggestelltArchicad 29: IFS-Funktion – Bedingungen und StandardergebnisVectorworks Data Visualization: Modelldaten mit Farben und Sichtbarkeit vermittelnImage-Daten und ImageTexture-Texturen mit der Blender Python APINoise- und Voronoi-Texturen in Blender: Schritt-für-Schritt-Leitfaden für ArchitekturmaterialienBlender-View-Layers-Leitfaden: Architektur-Renderings in Ebenen aufteilenLens- und Textureffekte für Architektur-Renderings mit Blender CompositorBlender-Kameratracking: Clips verfolgen, lösen und Tracks bereinigenKölner Dom: Mehr als 700 LED-Leuchten ohne Bohrungen installiert
TutorialsBlender

Image-Daten und ImageTexture-Texturen mit der Blender Python API

Die Dokumentation der Blender Python API erläutert, wie sich der Pixelpuffer eines Image-Datenblocks bearbeiten und ImageTexture konfigurieren lässt. Dieser Leitfaden überträgt die grundlegenden Schritte auf Workflows der Architekturvisualisierung.

Materialbeispiele für Innenräume und Arbeitsbereich für ArchitekturvisualisierungKI-Bild
Symbolbild, mit KI erzeugt.Bild: 3dsınıfı / FCA AI

Kurz gesagt

  1. Ein Image-Datenblock repräsentiert Bilddaten, die aus einer Datei geladen, gepackt oder erstellt wurden.
  2. Nach Änderungen am Pixelpuffer können Sie das Bild mit update() aktualisieren.
  3. Nicht gespeicherte Pufferänderungen werden beim Kopieren eines Image-Datenblocks möglicherweise nicht übernommen.
  4. ImageTexture bietet Einstellungen für Wiederholung, Beschneiden, Alpha und das Verhalten außerhalb der Bildgrenzen.

Was Sie in diesem Leitfaden lernen

Sie erfahren, wie Sie mit der Blender Python API einen Image-Datenblock erstellen, den Bildpuffer skalieren und Pixelwerte ändern. Außerdem sehen wir uns an, welche Rolle der Aufruf von update() dabei spielt, Änderungen im Bild anzuzeigen, und worauf Sie beim Kopieren eines Image-Datenblocks im Zusammenhang mit dem Puffer achten sollten. Im letzten Abschnitt geht es um den Zusammenhang zwischen den ImageTexture-Optionen, der Texturwiederholung, Alpha und den Bildgrenzen.

Dieser Leitfaden richtet sich an Teams für Architekturvisualisierung und Blender-Anwender, die Bilddaten per Skript vorbereiten oder das Texturverhalten gezielter untersuchen möchten. Die Beispiele beschränken sich auf die in der API-Dokumentation beschriebenen Funktionen; Schritte zur Materialzuweisung oder zum Aufbau eines Knotennetzwerks sind nicht Teil des Umfangs.

Voraussetzungen

  • Sie benötigen Zugriff auf die Python API in Blender. Als Quellen dienen die aktuellen API-Dokumente von Blender; welche Blender-Mindestversion für die beschriebenen Funktionen erforderlich ist, wird auf diesen Seiten nicht angegeben.

  • Die Codebeispiele verwenden das Modul bpy in der Blender-Python-Umgebung. Die Quellen nennen keine Anforderungen an externe Konten.

  • Die API-Dokumentation macht für diese Funktionen keine Angaben zu Hardwareanforderungen, Gebühren oder Lizenzkosten. Gehen Sie in diesen Punkten nicht von bestimmten Voraussetzungen aus, sondern prüfen Sie die verwendete Version und Arbeitsumgebung gesondert.

Schritt für Schritt mit einem Image-Datenblock arbeiten

1. Einen Bilddatenblock erstellen

Mit bpy.data.images.new() können Sie einen neuen Image-Datenblock erstellen. Das folgende Beispiel verwendet die im Ausgangsdokument angegebene Anfangsgröße. Über die Eigenschaft size lassen sich Breite und Höhe des Bildpuffers in Pixeln auslesen.

python
import bpy

image_src = bpy.data.images.new("Mimari_Kontrol", 1024, 102)
print(image_src.size)

Ein Image-Datenblock sollte nicht als Speicherort sämtlicher Bilddaten verstanden werden. Laut Dokumentation werden Informationen wie der Pixelpuffer und die Größe in einem Bildpuffer gespeichert; der Image-Datenblock verweist dagegen auf eine Bilddatei oder ein erstelltes Bild. Diese Unterscheidung ist besonders wichtig, wenn Sie den Puffer bearbeiten und anschließend den Datenblock kopieren.

2. Den Puffer skalieren und die Änderung im Bild anzeigen

Mit scale() ändern Sie die Größe des Bildpuffers. Die Eigenschaft pixels bietet Zugriff auf den aus Gleitkommawerten bestehenden Pixelpuffer. Das folgende Beispiel skaliert das Bild auf 1024 × 720, ändert die ersten vier Werte des Puffers und aktualisiert anschließend das Bild.

python
image_src.scale(1024, 720)
image_src.pixels[0:4] = (0.5, 0.5, 0.5, 0.5)
image_src.update()

print(image_src.size)
print(image_src.pixels[0:4])

Dieser Code weist lediglich den ersten vier Werten des Puffers neue Werte zu; er füllt damit nicht das gesamte Bild. Der Aufruf von update() sorgt dafür, dass Änderungen am Gleitkommapuffer in der Bildanzeige übernommen werden. Wenn das Ergebnis nicht den Erwartungen entspricht, prüfen Sie zunächst, ob die verwendete Variable auf den richtigen Image-Datenblock verweist und ob der Aktualisierungsaufruf ausgeführt wurde.

3. Das Kopierverhalten überprüfen

Das Kopieren eines Image-Datenblocks bedeutet nicht zwangsläufig, dass Änderungen am Puffer ebenfalls übernommen werden. Die Dokumentation weist darauf hin, dass Puffer nicht zwischen verschiedenen Image-Datenblöcken geteilt und beim Kopieren eines Bildes nicht dupliziert werden. Daher sind nicht auf der Festplatte gespeicherte Pufferänderungen möglicherweise nicht in der Kopie enthalten.

python
image_dest = image_src.copy()
image_dest.update()

print(image_dest.size)
print(image_dest.pixels[0:4])

Prüfen Sie nach dem Erstellen der Kopie deren Größe und Pufferwerte gesondert. Gehen Sie nicht davon aus, dass die Kopie auch die zuletzt am Quellbild vorgenommenen Änderungen enthält. Wenn die Pufferänderungen in die Kopie übernommen werden müssen, prüfen Sie, ob das Bild zuvor auf der Festplatte gespeichert werden muss, und kontrollieren Sie anschließend die Kopie.

4. Das Bild speichern oder in die Projektdatei packen

Die Image API bietet save() zum Speichern eines Bildes und save_render() zum Speichern an einem bestimmten Pfad unter Verwendung der Render-Einstellungen der Szene. Mit pack() können Sie das Bild als eingebettete Daten in die .blend-Datei aufnehmen.

python
image_src.pack()

Packen, Speichern und erneutes Laden sind unterschiedliche Vorgänge. In der API dient unpack() dazu, ein gepacktes Bild auf der Festplatte abzulegen, während reload() das Bild erneut aus seinem Quellpfad lädt. Welche Methode geeignet ist, hängt davon ab, wie Sie den Dateipfad des Bildes und die Daten im Projekt verwalten möchten. Prüfen Sie vor der Übergabe, ob sich das Bild am erwarteten Ort befindet und welchen Status es in der Projektdatei hat.

Wie wählt man ImageTexture-Einstellungen aus?

Die ImageTexture-Optionen bestimmen, wie ein Bild als Textur behandelt wird. Über die Eigenschaft extension legen Sie fest, wie sich der Bereich außerhalb der Bildgrenzen verhält. REPEAT wiederholt das Bild horizontal und vertikal; EXTEND verlängert die Randpixel; CLIP lässt den Bereich außerhalb der Bildgröße transparent. Die Dokumentation führt auch CLIP_CUBE und CHECKER als Optionen auf.

repeat_x und repeat_y legen die horizontalen und vertikalen Wiederholungsfaktoren getrennt fest. Für die Alphaverwendung gibt es use_alpha; mit invert_alpha werden die Alphawerte invertiert. use_interpolation steuert die Interpolation, während filter_size die Filtergröße für die Interpolation beeinflusst. Berücksichtigen Sie bei diesen Einstellungen den Alphakanal des Quellbildes und den vorgesehenen Einsatz der Textur.

Die Image API führt für die Alpha-Darstellung die Optionen STRAIGHT, PREMUL, CHANNEL_PACKED und NONE auf. CHANNEL_PACKED wird in der Dokumentation als Verwendung beschrieben, bei der verschiedene Bilder in den RGB- und Alphakanälen gepackt werden und sich die Kanäle nicht gegenseitig beeinflussen sollen. Wenn die Kanalstruktur der Quelldatei unbekannt ist, prüfen Sie zunächst, wie das Bild vorbereitet wurde, bevor Sie die Alpha-Einstellungen ändern.

Häufige Fehler

  • Annehmen, dass beim Kopieren auch der Puffer dupliziert wird: Nicht gespeicherte Änderungen sind möglicherweise nicht in der Kopie enthalten. Prüfen Sie Größe und Pufferwerte der Kopie.

  • Nach der Bearbeitung den Aufruf von update() vergessen: Aktualisieren Sie das Bild nach Änderungen am Puffer.

  • Das Verhalten an den Texturgrenzen nicht prüfen: REPEAT, EXTEND und CLIP führen zu unterschiedlichen Ergebnissen. Legen Sie fest, welches Verhalten an den Bildrändern erforderlich ist.

  • Alphawerte unabhängig vom Quellbild ändern: Prüfen Sie, ob ein Alphakanal verwendet wird und welcher Alpha-Modus geeignet ist.

  • Speichern und Packen für denselben Vorgang halten: save(), pack(), unpack() und reload() dienen unterschiedlichen Zwecken. Prüfen Sie den Bildstatus in der Projektdatei und auf der Festplatte getrennt.

Nächste Schritte

Führen Sie die Schritte zunächst in einer kleinen Testdatei aus. Geben Sie nach dem Erstellen des Bildes dessen Größe aus; aktualisieren Sie nach dem Skalieren und Ändern der Pixel den Puffer und prüfen Sie die Werte erneut. Vergleichen Sie beim Testen des Kopierverhaltens die Werte von Quelle und Kopie. Probieren Sie anschließend das Verhalten an den Grenzen und die Wiederholungseinstellungen für ImageTexture kontrolliert aus. Prüfen Sie vor dem Einsatz in einer Architekturvisualisierungsszene den Dateipfad des Quellbildes, die Alphaverwendung und ob das Bild im Projekt gepackt werden soll.

Quellen und Lizenz

Dieser Leitfaden basiert auf den offiziellen Python-API-Dokumenten von Blender zu bpy.types.Image und bpy.types.ImageTexture. Beide Quellen stehen unter der Lizenz CC BY-SA 4.0; der Inhalt wurde ins Türkische übertragen.

Quellen

2 Quellen
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/api/current/bpy.types.Image.html
Zusammenfassung
D(
docs.blender.org (CC BY-SA 4.0)docs.blender.org/api/current/bpy.types.ImageTexture.html
Zusammenfassung

Quelltexte werden nicht neu veröffentlicht; kurze Zitate sind gekennzeichnet, der Rest ist eigene Zusammenfassung und Einordnung.

Die Einschätzung von 3dsınıfı
3dEinschätzung der Redaktion

Die Eigenschaften von Image und ImageTexture bieten Büros, die Bilddaten per Skript bearbeiten oder wiederholte Textur-Einstellungen standardisieren möchten, nützliche Kontrollmöglichkeiten. Wenn Sie insbesondere das Kopierverhalten und die Frage, ob das Bild im Projekt gepackt ist, vor der Übergabe prüfen, lassen sich Unklarheiten bei der Dateiübergabe reduzieren.

Für Teams und Studierende in der Türkei hängt der praktische Nutzen dieses Ansatzes von den vorhandenen Python-Kenntnissen und dem Umfang wiederkehrender Aufgaben im Workflow ab. Die API-Seiten machen keine Angaben zu Hardwareanforderungen, Kosten oder Lizenzbedingungen. Prüfen Sie daher die verwendete Blender-Version und Arbeitsumgebung gesondert, statt in diesen Punkten von allgemeinen Voraussetzungen auszugehen.

Häufige Fragen

Wie erstellt man mit der Blender Python API einen Image-Datenblock?

In der Blender-Python-Umgebung lässt sich ein Image-Datenblock mit `bpy.data.images.new()` erstellen. Die Größe des erstellten Bildes kann über die Eigenschaft `size` ausgelesen werden.

Werden beim Kopieren eines Images in Blender auch die Pixeländerungen kopiert?

Nicht immer. Laut API-Dokumentation werden Puffer nicht zwischen verschiedenen Image-Datenblöcken geteilt und beim Kopieren nicht dupliziert. Nicht gespeicherte Änderungen werden möglicherweise nicht übernommen.

Wozu dienen REPEAT und CLIP in ImageTexture?

`REPEAT` wiederholt das Bild horizontal und vertikal. `CLIP` lässt den Bereich außerhalb der Bildgröße transparent.

Kommentare und Forum sind auf Türkisch.Mitdiskutieren
+

Verwandte Meldungen