[GastForen Programmierung/Entwicklung AppleScript Photoshop-Droplet als Hotfolder

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Photoshop-Droplet als Hotfolder

Anonym
Beiträge gesamt: 22827

28. Sep 2003, 11:50
Beitrag # 1 von 14
Bewertung:
(9097 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Forum,

Aus Photoshop kann man eine Aktion als Droplet ablegen,
alle Bilder die ich auf dieses Droplet ziehe, werden entsprechend der Aktion abgearbeitet.

Meine Frage:
Kann man ein Photoshop-Droplet in ein AppleSkript integrieren?

Ich würde gern per IN und OUT Ordner Photoshop-Droplets ausführen, d.h. sobald ein
Bild im IN-Ordner erscheint soll das Droplet starten und das abgearbeitete Bild im OUT-Ordner abgelegt werden.

gruss willem
X

Photoshop-Droplet als Hotfolder

Hans Haesler
  
Beiträge gesamt: 5826

28. Sep 2003, 21:30
Beitrag # 2 von 14
Beitrag ID: #418307
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

welche Version von Photoshop benutzt Du? Und unter welchem Mac OS?

Ich habe null Erfahrung mit Photoshop-Aktionen. Ich musste mich also zuerst etwas schlau machen. Und ich schaffte es tatsächlich, mit Photoshop 6.01 ein Droplet zu erzeugen, welches eine Aktion ausführt...

Nun ist aber ein Droplet und ein überwachter Ordner nicht kombinierbar. Man muss deshalb im Ordneraktions-Script den Befehl zu Ausführen der Photoshop-Aktion integrieren. Das folgende Script funktioniert mit meiner einfachen Photoshop-Aktion. Zum Glück habe ich durch Mitlesen von Diskussionen gelernt, dass die Dateien mit dem Finder geöffnet werden müssen, wenn man Photoshop 6 verwendet.

Bitte passe die Pfade zu Photoshop und zum "Out"-Ordner, sowie den Namen der Photoshop-Aktion an Deine Umgebung an. Achtung: in der Photoshop-Aktion muss dass Öffnen der Datei entfernt werden, weil dies der Finder besorgen muss.
---
property PSpath : alias "Macintosh HDns (Mac OS 9):Adobe® Photoshop® 6.0.1:Adobe® Photoshop® 6.0.1"
property outFolder : alias "Macintosh HD:Out:"

on adding folder items to thisFolder after receiving itemList
  repeat with aFile in itemList
    tell application "Finder" to open file aFile using PSpath
    tell application "Adobe® Photoshop® 6.0.1"
      activate
      do script "test_1"
    end tell
    tell application "Finder" to move file aFile to folder outFolder
  end repeat
end adding folder items to
---
Dieses Script, als kompilierte Version auf der Harddisk gesichert und an den "In"-Ordner angefügt, sollte die angegebene Aktion ausführen. Ich habe aber festgestellt, dass die Modifikations-Zeit nicht geändert wird, obwohl das Sichern in der Photoshop-Aktion integriert ist.

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Anonym
Beiträge gesamt: 22827

29. Sep 2003, 20:21
Beitrag # 3 von 14
Beitrag ID: #418308
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,

ich verwende Photoshop 7.01 unter Mac-OS 9.2
Dein Skript werde ich natürlich gleich testen und davon berichten

Gruss und Dank
willem


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Anonym
Beiträge gesamt: 22827

29. Sep 2003, 22:34
Beitrag # 4 von 14
Beitrag ID: #418309
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
habe es ausprobiert, es funktioniert,
nur - mal wird es einmal ausgeführt und manchmal zweimal.

(habe in der Aktion kein "Öffnen" angegeben, aber -
da ich zuerst das Bild in den IN-Ordner ziehe - das Droplet wird ausgeführt - und anschl. innerhalb der Aktion wieder in den IN-Ordner sichere, ist es vielleicht doppelt gemoppelt?! habe auch probiert es innnerhalb des Droplets in den OUT-Ordner zu speichern, aber dann versucht das Skript ebenfalls das File in den OUT zu moven)

Frage:
Kann man das Skript so abändern, daß nur der IN-Ordner nach Files abgefragt wird?
Den OUT-Ordner könnte ich innnerhalb der Aktion festlegen.

willem


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Hans Haesler
  
Beiträge gesamt: 5826

30. Sep 2003, 09:52
Beitrag # 5 von 14
Beitrag ID: #418310
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

das Script, welches Du dem In-Ordner angehängt hast, fragt nur diesen nach Files ab.

Was man ändern könnte: die Files zuerst verschieben und sie dann im Out-Ordner mit der Photoshop-Aktion behandeln lassen. Dazu muss nur die Zeile mit dem 'move'-Befehl verschoben werden:
---
property PSpath : alias "Macintosh HDns (Mac OS 9):Adobe&reg; Photoshop&reg; 6.0.1:Adobe&reg; Photoshop&reg; 6.0.1"
property outFolder : alias "Macintosh HD:Out:"

on adding folder items to thisFolder after receiving itemList
  repeat with aFile in itemList
    tell application "Finder" to move file aFile to folder outFolder
    tell application "Finder" to open file aFile using PSpath
    tell application "Adobe&reg; Photoshop&reg; 6.0.1"
      activate
      do script "test_1"
    end tell
  end repeat
end adding folder items to
Code
Ich habe Photoshop 7 nicht zur Verfügung. Deshalb lasse ich Dich herausfinden, ob das Öffnen der Dateien immer noch über den Finder geschehen muss, oder ob Photoshop dies direkt vornehmen kann. Wenn ja, kann man die "property" 'PSpath' löschen, ebenfalls die Zeile, in welcher der Finder die Datei öffnet. Stattdessen wird eine Zeile innerhalb des Photoshop-Blocks eingefügt. Ungefähr so: 

property outFolder : alias "Macintosh HD:Out:"

on adding folder items to thisFolder after receiving itemList
  repeat with aFile in itemList
    tell application "Finder" to move file aFile to folder outFolder
    tell application "Adobe&reg; Photoshop&reg; 7.0"
      activate
      open file aFile
      do script "test_1"
    end tell
  end repeat
end adding folder items to
---
Ich hoffe, dass es so funktioniert.

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Anonym
Beiträge gesamt: 22827

30. Sep 2003, 21:44
Beitrag # 6 von 14
Beitrag ID: #418311
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans,
dein erstes Skript funktioniert am besten
bei den zwei nächsten Skripts bekomme ich Fehler -2807 + -52

property PSpath : alias "System HDns (Mac OS 9):Adobe Photoshop 7:Adobe Photoshop 7.0:"
property outFolder : alias "System HD:Out:"

on adding folder items to thisFolder after receiving itemList
 repeat with aFile in itemList
  tell application "Finder" to open file aFile using PSpath
  tell application "Adobe Photoshop 7.0"
   activate
   do script "test_1"
  end tell

  -- entweder hier

  tell application "Finder" to move file aFile to folder outFolder

    -- oder hier wird manchmal das Bild ein zweites mal aktiviert

 end repeat
end adding folder items to

aber ich will Dir keinen Stress machen, ich kann ja im "Handbetrieb" die Daten aufs Droplet ziehen.

Gruss Willem


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Hans Haesler
  
Beiträge gesamt: 5826

30. Sep 2003, 22:58
Beitrag # 7 von 14
Beitrag ID: #418312
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

ja da ist guter Rat teuer. Bei mir funktionieren alle drei Scripts problemlos.

Versuche, den Problemverursacher zu finden, indem Du im Script 2 die an Photoshop gerichteten Befehle deaktivierst: zwei Trennungsstriche (= --) vor der Zeile einsetzen, Syntax prüfen, sichern. Dann eine Bild-Datei in den In-Ordner ziehen. Wird die Datei nun in den Out-Ordner verschoben? Dann den Befehl zum Öffnen der Datei wieder aktivieren (die beiden Trennungsstriche wegmachen). Und so weiter.

Versuche auch, eine ganz einfache Aktion einzusetzen. Nur den Modus wechseln (z.B. von Graustufen auf CMYK) und sichern.

Übrigens: welche Version von AppleScript ist auf Deiner Maschine installiert? Zwei Methoden, um dies herauszufinden.
1) Im Ordner "Systemerweiterungen" die Datei "AppleScript" auswählen. Dann mit Befehl-I das Informationsfenster öffnen. Wenn die Versionszeile die Zahl 1.7 enthält, dann kann das AppleScript-System nicht vernünftig benutzt werden.
2) Die gleiche Information erhält man, wenn im Fenster des Skripteditors das Wort "version" eingetippt wird (ohne die Anführungszeichen) und dieses Mini-Script ausgeführt wird.

Wenn also die installierte Version 1.7 ist, dann hilft nur das Downgraden auf Version 1.6. Dazu müssen nur zwei Dateien ausgetauscht werden: die Systemerweiterung "AppleScript" und die Scripting Addition "Standard Additions". Beide kann ich Dir zustellen. Das Downgraden ist problemlos. Wir haben es in unserem Betrieb bei jeder Maschine vorgenommen.

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Anonym
Beiträge gesamt: 22827

3. Okt 2003, 12:05
Beitrag # 8 von 14
Beitrag ID: #418313
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Entschuldigung,

das Script 2 funktioniert, habe anscheinend im Photoshop-Droplet was falsch gemacht.

Nun noch eine Frage:
wenn das Droplet im Photoshop Unterordner "Vorgaben:Aktionen" liegt,
wie muss ich dies bei "do script "test_1" angeben?

etwa so?
do script "test_1" of FolderD:Vorgaben:Aktionen

Gruss und Danke
willem


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Anonym
Beiträge gesamt: 22827

3. Okt 2003, 13:07
Beitrag # 9 von 14
Beitrag ID: #418314
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
noch eine 2. Frage:

von allen Bildern die nach der Droplet-Aktion "Test_1" in den "OUT" fallen,
wollte ich gerne autom.  eine Kopie im Ordner "Proof" ablegen.

Dazu könnte im dem OUT-Ordner eine Ordneraktion anhängen
nur - wie muss das Script aussehen, damit nur die neuen Files kopiert werden?

Gruss willem


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Hans Haesler
  
Beiträge gesamt: 5826

3. Okt 2003, 14:24
Beitrag # 10 von 14
Beitrag ID: #418315
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

gut, dass das Script funktioniert. Hier der Versuch einer Antwort zur ersten Frage:

Das Droplet und die Ordneraktion sind zwei unabhängige Dinger, welche nur gemeinsam haben, dass sie ein Script ausführen, welches in Photoshop gespeichert ist. Es ist aber nicht das gleiche Script, weil bei der Ordneraktion das Ordneraktions-Script das Öffnen der Dateien besorgt.

Droplet: Die Dateien werden auf das Icon des Droplets gezogen und das entsprechende Photoshop-Script wird ausgeführt. Der Pfad zum Droplet muss nicht angegeben werden.

Ordneraktion: Die Dateien werden in den (offenen) Ordner gelegt, an welchem das Ordneraktions-Script angehängt ist, und das entsprechende Photoshop-Script wird ausgeführt. Der Pfad zum Droplet muss nicht angegeben werden. Das Droplet kann gelöscht werden, weil das Script, welches benötigt wird, erstens ein anderes ist, als die Droplet-Basis und zweitens in Photoshop gespeichert ist.

Aller klar? ;-)


Zur zweiten Frage. Ich gehe davon aus, dass Du die Version benutzt, in welcher die Files zuerst in den "Out"-Ordner bewegt werden, bevor das Photoshop-Script aufgerufen wird.

Die Lösung sehe ich so: das Ordneraktions-Script erweitern (statt ein zweites anzuhängen). Dazu muss lediglich der Pfad zum Ordner "Proof" definiert und am Ende der Repeat-Schleife eine Zeile eingefügt werden, welche den Finder bittet, die Datei zu kopieren. Vorgängig wird er immer aktiviert, weil das Kopieren so schneller abläuft:
---
property outFolder : alias "Macintosh HD:Out:"
property proofFolder : alias "Macintosh HD:Proof:"

on adding folder items to thisFolder after receiving itemList
  repeat with aFile in itemList
    tell application "Finder" to move file aFile to folder outFolder
    tell application "Adobe Photoshop 7.0"
      activate
      open file aFile
      do script "test_1"
    end tell
    tell application "Finder" to activate
    tell application "Finder" to duplicate file aFile to folder proofFolder
  end repeat
end adding folder items to
---
Nochmals: dieses Script als normales, kompiliertes Script auf die Harddisk speichern. Dann beim Anhängen an den "In"-Ordner diese Script-Datei auswählen. Und das Droplet vergessen. Okay?

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Hans Haesler
  
Beiträge gesamt: 5826

3. Okt 2003, 16:16
Beitrag # 11 von 14
Beitrag ID: #418316
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

ich stellte gerade fest, dass Photoshop, "hilfreich" wie immer, die Datei in jenen Ordner
sichert, in der sich die Beispiel-Datei beim Aufzeichnen des Photoshop-Scripts befand.
Je nach Arbeitsablauf kann es also mit meinem Vorschlag nicht klappen.

Ich werde mich wieder melden &#133;

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Hans Haesler
  
Beiträge gesamt: 5826

3. Okt 2003, 21:38
Beitrag # 12 von 14
Beitrag ID: #418317
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

es hilft alles nichts: wenn in der Photoshop-Aktion nur ein normales Sichern vorgenommen wird, bleibt die Ausführung nach der ersten Datei stehen. Das gleiche geschieht, wenn man ein Sichern-Als... aufzeichnet und der Pfad nicht vollständig eingetragen wird. Wenn aber der Pfad komplett ist, dann greift die Ordner-Aktion auf die unbearbeiteten Dateien zu.

Also &#133; das Droplet wieder hervorklauben und es um Verzeihung bitten. ;-)

Anschliessend folgendes Script als normales kompiliertes Script auf die Harddisk sichern und an jenen Ordner hängen, in welchen das Droplet die Dateien sichert:
---
on adding folder items to thisFolder after receiving itemList
  tell application "Finder" to activate
  repeat with aFile in itemList
    tell application "Finder" to duplicate file aFile to folder "Macintosh HD:Proof:" with replacing
  end repeat
end adding folder items to
---
Die Dateien, welche Du auf das Droplet ziehst, werden mit dem definierten Photoshop-Script bearbeitet, landen im Ziel-Ordner und das Ordneraktions-Script dupliziert sie in den Ordner "Proof".

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Anonym
Beiträge gesamt: 22827

4. Okt 2003, 15:39
Beitrag # 13 von 14
Beitrag ID: #418318
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Hans, herzlichen Dank für Deine unermüdliche Ausdauer.
Dein Script habe ich dem Ordner "Fertig" angehängt
es funktioniert einwandfrei - der Ordner muss (wie immer) geöffnet sein -
_________
on adding folder items to thisFolder after receiving itemList
  tell application "Finder" to activate
 -- ? open thisFolder ?
  repeat with aFile in itemList
    tell application "Finder" to duplicate file aFile to folder "Macintosh HD:Proof:" with replacing
  end repeat
 -- ? close thisFolder ?
end adding folder items to
_________
Nun, kann man im Script vor dem "duplicate" den Ordner autom. öffnen und danach wieder schliessen?
ansonsten muss ich mich immer vorher vergewissern daß der Ordner offen ist.

Gruss willem


als Antwort auf: [#418306]

Photoshop-Droplet als Hotfolder

Hans Haesler
  
Beiträge gesamt: 5826

4. Okt 2003, 16:22
Beitrag # 14 von 14
Beitrag ID: #418319
Bewertung:
(9096 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo Willem,

bitte sehr, gern geschehen :-).

Betreffend Deine Frage: Das Script wird nur ausgeführt wenn der Ordner offen ist.
Aus diesem Grunde kann der Befehl zum Öffnen des Ordners nicht im selben Script stehen.

Eine mögliche Lösung: Dem Ordner "Fertig" ein zweites Script anhängen (ja, das kann man!),
welches dafür sorgt, dass der Ordner nicht geschlossen werden kann:
---
on closing folder window for thisFolder
   tell application "Finder" to open thisFolder
end closing folder window for
---

Hans Haesler <hsa@ringier.ch>


als Antwort auf: [#418306]
X