Für ein Hobby-Gamedev-Projekt suche ich nach einer Möglichkeit, den folgenden Workflow zu automatisieren, der in jedem Foto- / Bildbearbeitungstool enthalten sein kann.
Kurz gesagt, nehmen Sie ein hochauflösendes Bild, treffen Sie mehrere Auswahlen und exportieren Sie dann jede Auswahl in eine separate PNG-Datei, während Sie gleichzeitig eine Liste der Auswahlkoordinaten in eine Textdatei exportieren. Sehen Sie, was ich im Mock-up-Bild unten meine:
Ich mache jetzt alle diese Schritte von Hand und die meisten Bilder haben 70-80 Teile. Bei Fehlern, Bildaktualisierungen, Auflösungsänderungen usw. muss ich große Teile oder sogar das Ganze wiederholen, obwohl die Auswahl ungefähr gleich ist.
Einige Bildbearbeitungsprogramme unterstützen Plug-Ins und Scripting, und ich kann Scripting (Lua, Python, Javascript) problemlos ausführen. Aber ich kenne keinen Fotoeditor, der das Speichern mehrerer Auswahlen unterstützt . Wenn Sie eine gute Lösung dafür in einem Bildbearbeitungsprogramm wie Painshop, PhotoShop, Coral Draw oder einem OpenSource-Programm wie Gimp oder Paint Dot Net usw. kennen, lassen Sie es mich bitte wissen.
Aber ich kenne keinen Fotoeditor, der das Speichern mehrerer Auswahlen unterstützt.
Eine Lösung für Gimp:
Select>To path
(mithilfe der pdb.plug_in_sel2path(image, drawable)
Funktion) aus. Dadurch wird ein Pfad erstellt, der aus mehreren "Strichen" besteht, wobei jeder Strich eine geschlossene Kurve ist, die eines Ihrer ausgewählten Elemente darstellt(*).Einige Beispiele für Gimp-Skripte in Python, einschließlich einer ganzen Reihe, die sich hauptsächlich mit Pfaden befassen, finden Sie hier und hier .
(*) Einige Gimp-Pfade-Grundlagen :
selection to path
, um eine ganze Liste davon zu erstellen und sie in einen nützlichen Namen paths
umzubenennen . path
Aber könnte dann ein custom.py-Skript verwendet werden, um alle diese Pfade zu durchlaufen, jeden Pfad wieder in Auswahlen umzuwandeln und als PNG-Datei zu speichern? Ist das der Ansatz, den Sie meinen?Eine (teilweise / noch nicht funktionierende) Lösung für GIMP, die die disjunkten Teile ("Striche") einer Auswahl verwendet:
Legen Sie das GIMP-Skript von Andrew Kvalheim in eine Datei ~/.gimp-2.8/scripts/export-selected-regions.scm
(oder den entsprechenden Ort unter Windows / Mac OS X).
Starten Sie GIMP.
Erstellen Sie Ihre Auswahl.
Wählen Sie „Auswählen → Ausgewählte Regionen exportieren“ aus dem Menü. (Dies ist der neue Menüeintrag, der vom Skript hinzugefügt wurde.)
Vorbehalte:
Ab GIMP 2.8 funktionierte dieses Skript nicht und beschwerte sich über "unbekanntes Bildformat". Es wird also ein Update benötigen, aber dann eine Lösung bereitstellen. Bitte berichte in den Kommentaren, wenn es funktioniert.
Verglichen mit einer auf Pfaden basierenden Lösung (in den anderen Antworten hier) erfordert diese Lösung weniger Klickarbeit, um die Auswahlen zu definieren, ist aber nur anwendbar, wenn (1) Sie keine selbstdefinierten Namen für Ihre Ausgabebilder benötigen und (2) Keines Ihrer Auswahlstücke überlappt sich (da dies beim Definieren der Auswahl zu einem zusammengeführten "Strich" und folglich zu einem Ausgabebild für diesen "Strich" führen würde).
Eine (teilweise / noch nicht funktionierende) Lösung für GIMP, die einen schnellen halbautomatischen Prozess von "Auswahl treffen, als PNG speichern, wiederholen" verwendet:
Speichern Sie das Skript "Save Area " in einer Datei ~/.gimp-2.8/scripts/savearea.scm
(oder an einem entsprechenden Ort unter Windows / Mac OS X).
Starten Sie GIMP.
Gehen Sie zu „Bearbeiten → Tastaturkürzel“ und weisen Sie dem Menüpunkt „Datei → Bereich speichern“ ein Tastaturkürzel zu (das durch das von Ihnen installierte Skript hinzugefügt wurde). Sie können beispielsweise eine einzelne Taste ohne Modifikator verwenden /
.
So verwenden Sie das Skript:
Vorbehalte: Das Skript wurde zuletzt 2007 aktualisiert, wird also wahrscheinlich nicht in einem aktuellen GIMP 2.8 funktionieren (ich habe es jedoch nicht getestet). Aber es ist eine Teillösung, die behoben werden könnte. Auch die Installationsanweisungen erwähnen, dass man die Quellbilder in ein anderes Format konvertieren sollte, wenn das Skript nicht funktioniert. PNG mit "Bild → Modus → RGB" scheint eine gute Wahl zu sein, da das Skript dieses Format selbst verwendet, um die Auswahl zu speichern.
export_paths_to_png.py
Python-Skripts in separate PNG-Dateien exportieren für GIMP. Der Vorteil davon ist, dass die Auswahl + Namen in einer Datei gespeichert werden, was gut für die Archivierung ist, damit Sie später einige Änderungen vornehmen und dann einfach erneut exportieren können. Ein weiterer Vorteil ist, dass bei einer Größenänderung des gesamten Bildes auch die Pfade geändert werden.Eine (voll funktionsfähige) Lösung, wie sie vom ursprünglichen Poster @BdR entwickelt und in diesem Kommentar erwähnt wurde . Es ist die bisher fortschrittlichste Lösung für GIMP und funktioniert vollständig im aktuellen GIMP 2.8.
Legen Sie das Skript export_paths_to_png.py in den Ordner ~/.gimp-2.8/plug-ins/
(oder den entsprechenden Ort unter Windows / Mac OS X).
Machen Sie dieses Skript unter Linux ausführbar:
chmod a+x ~/.gimp-2.8/plug-ins/export_paths_to_png.py
Verwenden Sie unter Linux die generierten Dateien /
stattdessen \
als Verzeichnistrennzeichen im Skript (Zeile 29 und 68 ).
Starten Sie GIMP.
Erstellen und benennen Sie GIMP-Pfade für jede Auswahl:
Erstellen Sie die Auswahl.
Klicken Sie im Dialog "Pfade" auf "Auswahl zu Pfad".
Optional: Benennen Sie Ihren Pfad um. Der Pfadname wird beim Speichern als Dateiname verwendet.
Wiederholen Sie dies für alle Ihre Auswahlen.
Klicken Sie auf "Filter → Pfade → Pfade nach PNG exportieren" (der Menüpunkt, der durch das von Ihnen installierte Skript hinzugefügt wurde), füllen Sie den Dialog aus und klicken Sie auf "OK".
Vorteile:
.xcf
. Dies spart Arbeit, wenn Sie später einige Änderungen vornehmen und die Bilder erneut exportieren müssen.orgcoords.json
in Ihrem Ausgabeverzeichnis gespeichert, um sie mit Ihren eigenen Skripten zu verwenden. Wenn Ihre Pfade einfache Auswahlen mit dem GIMP "Rectangle Select Tool" sind, sind auf diese Weise alle Informationen darüber in der .json
Datei enthalten.
SeitlichesTerminal
SeitlichesTerminal
BdR