[GastForen Programme Print/Bildbearbeitung Adobe InDesign Metadaten in verknüpften Bilddateien ändern (Bridge skripten)

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Print/Bildbearbeitung - Photos, Layout, Design
Themen
Beiträge
Moderatoren
Letzter Beitrag

Metadaten in verknüpften Bilddateien ändern (Bridge skripten)

Martin Fischer
  
Beiträge gesamt: 12691

18. Dez 2006, 16:06
Beitrag # 1 von 3
Bewertung:
(2363 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Per Skript sollen Metadaten von Bildern, die später in eine Oracle-Datenbank eingelesen werden, geändert werden.

Hier betrete ich Neuland und habe ein paar Fragen/Behauptungen, die mit ja/nein beantwortet werden können:

1. es ist nicht möglich, direkt aus InDesign heraus Feldinhalte der Metadaten zu ändern;
2. Metadaten der Bilder lassen sich innerhalb der Creative Suite in PhotoShop oder Illustrator oder der Bridge ändern;
3. es ist nicht möglich, die Bridge über ein JavaScript aus InDesign zu steuern;
4. es ist nicht möglich, die Bridge per AppleScript zu steuern;
5. es ist nicht möglich, ein Skript in Bridge wie ein Skript in InDesign über eine Skriptpalette oder wie in Illustrator über ein SubMenu zu starten.

Nach so viel Fragen habe ich aber auch eine Antwort: ;-)
Das folgende Skript aus dem Scripting-Forum, im Ordner "/Library/Application Support/Adobe/StartupScripts" abgelegt, erzeugt in Bridge einen neuen Menüeintrag "Scripts" mit einem auswählbaren Skript "Add Filename to Metadata". Dieses Skript erstellt bei ausgewählten Bildern ein neues Metafeld "OldFileName" und befüllt es mit dem aktuellen Dateinamen.
Der geänderte Wert kann über Informationen/Extras/Erweitert/Adobe Photoshop-Eigenschaften überprüft werden.


Code
//AddNametoMeta.jsx 

#target "bridge"

AddNametoMeta = {}; // function protoype

AddNametoMeta.execute = function(){
var sels = app.document.selections;
for (var i = 0; i < sels.length; i++){
var md = sels[i].synchronousMetadata;
md.namespace = "http://ns.adobe.com/photoshop/1.0/";
// create a custom tag e.g. "OldFileName"
// and copy the existing file name to this tag
md.OldFileName = sels[i].name;
}
}

// this script only works in bridge
if (BridgeTalk.appName == "bridge"){
if (MenuElement.find('scripts') == null){
var ScriptsMenu = new MenuElement( "menu", "Scripts", "after Help", "scripts");
}
var menu = new MenuElement("command", "Add Filename to Metadata", "at the end of scripts");
menu.onSelect = AddNametoMeta.execute;
}


(Dieser Beitrag wurde von Martin Fischer am 18. Dez 2006, 16:06 geändert)
X

Metadaten in verknüpften Bilddateien ändern (Bridge skripten)

Gerald Singelmann
  
Beiträge gesamt: 6264

18. Dez 2006, 16:43
Beitrag # 2 von 3
Beitrag ID: #267450
Bewertung:
(2346 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Martin,

wahrscheinlich haben sich alle Erdhörnchen voller Schrecken in ihre Löcher zurückgezogen, als von DIR eine Script-Frage kam.

Die Bridge zu scripten steht bei mir seit (wie vieles andere) vielen Monaten auf dem Zettel. Insofern kann ich dir auch nur Vermutungen bieten, aber vielleicht helfen die weiter.

1. Soweit ich das verstehe, hat InDesign keinerlei Routinen, die verknüpften Dateien zu verändern. Recht so.

2. Yepp. Soweit ich weiß steckt hinter XMP aber nichts anderes als ein XML-Part in der Datei, den ein arrivierter Skripter wie du vielleicht auch direkt parsen kann.

3. Da hast du mehr Erfahrung als ich, aber ich habe das auch so verstanden, dass man im ESTK ein Target definiert und nicht mehrere.

4. Nein, nur JS.

5. Dein Beispielskript ist doch das Gegenbeispiel, oder? Meines Wissens ist auch der Kontaktabzug unter Werkzeuge > InDesign ein ganz normales Skript.

Muss es die Bridge sein?
Kann es nicht ein AppleScript sein, dass von InDesign aus Photoshop steuert? Wenn du nichts an den Bilddaten sondern nur an den Metadaten änderst, kannst du auch ein JPEG so oft auf- und zumachen wie du willst.
Wenn Performance wichtig ist, würde ich wohl über einen eigenen XMP-Parser nachdenken. Womöglich hat Ole oder Dave auch einen in der Schublade ;)

HTH
Gerald


als Antwort auf: [#267445]

Metadaten in verknüpften Bilddateien ändern (Bridge skripten)

Martin Fischer
  
Beiträge gesamt: 12691

18. Dez 2006, 17:05
Beitrag # 3 von 3
Beitrag ID: #267453
Bewertung:
(2335 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Gerald,

> wahrscheinlich haben sich alle Erdhörnchen voller Schrecken in ihre Löcher zurückgezogen,
> als von DIR eine Script-Frage kam.

Danke, daß Du mein Anliegen ernst nimmst (es ist mir ernst).

> 1. Soweit ich das verstehe, hat InDesign keinerlei Routinen,
> die verknüpften Dateien zu verändern. Recht so.

Ein kleines Aber: die einzelnen Eigenschaften der LinkMetadata (linkXmp) sind in der ScriptingReference alle als read only gekennzeichnet. Nur die properties (also alle zusammen) sind read/write. Ist das ein Druckfehler?

> XML-Part in der Datei, den ein arrivierter Skripter wie du vielleicht auch direkt parsen kann

Nein, da fehlt es mir an einer Vorstelllung, wie und wo das organisiert sein könnte.

> 5. Dein Beispielskript ist doch das Gegenbeispiel, oder? Meines Wissens ist auch der
> Kontaktabzug unter Werkzeuge > InDesign ein ganz normales Skript.

Ich vermute, bei dem Beispielskript handelt es sich um einen workaround für das Problem, das ich versucht habe zu beschreiben.

Richtig, der Kontaktabzug wird beim Starten der Bridge aktiviert (auch wenn Du ihn in der aktuellen Sitzung gar nicht brauchst - er wartet bibbernd darauf, gebraucht zu werden).
Und das Beispielskript aktiviert sich beim Starten der Bridge mehr oder weniger selber, indem es einen Menüpunkt erstellt, aus dem das Skript aufzurufen ist. Das erinnert mich an die Geschichte von Münchhausen, in der er sich an den eigenen Haaren aus dem Sumpf zieht.

Es ist eben gegen meine Gewohnheiten (gerade bei der Creative Suite), daß sich ein Skript nicht über eine Palette (InDesign) oder einen Menüpunkt aus der Applikation (Illustrator) starten läßt, sondern nur über den StartupSkript-Folder oder das ExtendScript Toolkit.

> Muss es die Bridge sein?
> Kann es nicht ein AppleScript sein, dass von InDesign aus Photoshop steuert?
Die Daten liegen teilweise gerastert und teilweise als Vektordaten (Illustrator) vor.
Und die Vektordateien möchte ich nicht unter der Hand rastern. ;-)
Gut, per AS könnte ich beide Applikationen gezielt über den Dateityp ansprechen.

Aber auch im Hinblick auf die Plattformunabhängigkeit wäre ein vernünftiges Skript für Bridge interessant gewesen.

> Wenn Performance wichtig ist, würde ich wohl über einen eigenen XMP-Parser nachdenken.
> Womöglich hat Ole oder Dave auch einen in der Schublade ;)

Ich glaube, für's erste reicht die obige Lösung (das Beispielskript).
Aber von dem ausgehend wollte ich eben ein paar grundsätzliche Dinge klären, bevor ich mich auf andere Skript-Projekte in Bridge einlasse. Und diesbezüglich hast Du mir geholfen.

Auf Ole oder Dave gehe ich zu, wenn ich die Sache mit dem XMP-Parser auf Schwäbisch verstanden habe und mir eine Übersetzung ins Englische zutraue. ;-)


als Antwort auf: [#267450]
(Dieser Beitrag wurde von Martin Fischer am 18. Dez 2006, 19:16 geändert)