Journals>Das Entwickler-Journal>Automator-Tutorial: in iPhoto markierte Bilder herunterskalieren und per FTP auf einen Server laden

Automator-Tutorial: in iPhoto markierte Bilder herunterskalieren und per FTP auf einen Server laden

Einleitung

Wer einen MobileMe-Account besitzt oder seine letzten Urlaubsfotos lieber bei Facebook oder Flickr veröffentlichen möchte, der findet in iPhoto entsprechende Funktionen, um Bilder komfortabel hochzuladen. Wer aber Bilder lieber auf seinem eigenen Server hostet, der muss diese zuvor umständlich umkopieren, herunterskalieren und dann noch über einen FTP-Client hochladen. Mit dem Automator kann man sich das Leben etwas einfacher machen. Das Schöne dabei: obwohl der Mac OS X-Finder bis heute nicht auf FTP-Volumes schreiben kann, ist ein Automator-Dienst trotzdem mit Bordmitteln machbar. Wie das geht, möchte ich hier zeigen.

Voraussetzungen

Das Endprodukt, was aus diesem Tutorial hervorgeht, wurde in Automator 2.1 unter Mac OS X 10.6.4 erzeugt. Außerdem liegt Webspace bei einem namhaften Web-Hoster vor und ist über FTP erreichbar. Besondere Automator-Plugins werden nicht verwendet.

Schritte zum Erstellen des Dienstes

Nach dem Start von Automator ist ein neuer Dienst zu erzeugen. Dienste haben die Eigenschaft, sich in das ihnen zugewiesene Programm einzuhängen. Der Dienst ist dann über die Menüleiste erreichbar und fängt sofort an zu arbeiten.

Unser Dienst soll alle in iPhoto markierten Bilder entgegennehmen und in einen temporären Ordner kopieren. Denn: das Original-Material soll natürlich auf keinen Fall angefasst werden.

Nachdem wir einen neuen Dienst begonnen haben, legen wir fest, in welche Anwendung sich dieser einzuklinken hat. Wir möchten, dass der Dienst in iPhoto verfügbar ist. Daher nehmen wir folgende Einstellung vor:


Der Dienst soll einen temporären Ordner auf dem Schreibtisch anlegen. Dies ist durch eine einfache Aktion zu machen:


Anschließend möchten wir die in iPhoto markierten Bilder ermitteln. Dafür müssen diese mittels der folgenden Aktion abgefragt werden:


Als Ergebnis erhalten wir die Bilder, die wir in iPhoto markiert haben. Bilder sind letztlich nichts anderes als "Finder-Objekte", also Dateien. Diese Dateien sollen jetzt in den zuvor angelegten temp-Ordner kopiert werden, was sich mit folgender Aktion bewerkstelligen lässt:


Bei der Auswahl des Ordners gibt es einen kleinen Fallstrick: da das Feld keine freien Texteingaben für Ordner zulässt, muss der Ordner erst im Auswahlfenster angelegt werden. Man klickt also in der Combobox "Nach:" auf "Andere..." legt einen "temp"-Ordner auf dem Schreibtisch an und wählt diesen anschließend aus. Sobald die Combobox dann mit dem "temp"-Ordner beschriftet ist, können wir ihn wieder vom Schreibtisch löschen.

Nachdem die Kopieren-Aktion ausgeführt wurde, erhalten wir als Ergebnis die kopierten Dateien. Mit diesen Kopien können wir nun machen, was wir wollen. In unserem Beispiel möchten wir die Bildgröße ein wenig verkleinern, da das Bereitstellen von Bildern auf Web-Seiten in voller Größe zu enorm langen Ladezeiten führen kann. Wir verwenden also die Aktion "Bilder skalieren":


Hier kann entweder ein Prozentwert oder die Pixelgröße eingestellt werden. Je nachdem, ob das Bild ein hoch- oder querformatiges Bild ist, wird entweder die Höhe oder die Breite automatisch auf den hier eingestellten Wert skaliert.

Jetzt liegen die Bilder in der gewünschten Größe vor und können hochgeladen werden. Wenn der Mac OS X-Finder beschreibbare FTP-Volumes unterstützen würde, hätten wir es einfach. Da das aber nicht funktioniert, nehmen wir einen kleinen Umweg über ein Shell-Script. Wir führen ein Shell-Script aus, welches die eben erzeugten Bilder automatisch hochlädt.

Damit das klappt, muss zuvor eine Textdatei erstellt werden, welche die Befehle für die ftp-Kommandozeile beinhaltet. Diese Textdatei wird durch die folgenden Aktionen erstellt:


Das Basisverzeichnis ist bei Shell-Scripts aus Automator heraus immer das aktuelle User-Verzeichnis. Mittels lcd wird also zunächst das temp-Verzeichnis festgelegt, in dem sich die Bilder befinden.
Das anschließende "prompt" schaltet die Abfragen aus, die wir beim nächsten Befehl "mput" sonst erhalten würden.
mput ermöglicht das Hochladen mehrerer Dateien gleichzeitig. Achtung, hier ist zu beachten, dass bei der Dateiendung Groß-/Kleinschreibung unterschieden wird! "*.jpg" ist also nicht gleich "*.JPG". Meistens sind Bilder in iPhoto - gerade wenn sie von einer Digitalkamera kommen - aber mit Dateiendung in Großschrift versehen.

Nun haben wir den Text für die ftp-Kommandos, die Datei muss aber noch geschrieben werden. Dies erledigt schließlich die folgende Aktion:


Ins temp-Verzeichnis wird nun eine Textdatei namens ftp.input geschrieben. Diese kann nun, zusammen mit folgender Aktion verwendet werden:


"Benutzername", "Passwort" und "www.meineadresse.de" sind natürlich durch die eigenen Angaben zu ersetzen. Ebenso ist das Unterverzeichnis "test/" an die eigenen Bedürfnisse anzupassen. Wichtig ist jedoch, dass hinter dem Verzeichnis immer ein abschließendes Slash (/) folgt, sonst erkennt ftp die Angabe nicht als Verzeichnis.

Dieser Befehl verbindet sich sofort mit einem ftp-Server und führt anschließend die in der ftp.input-Datei enthaltenen Befehle aus. Dadurch, dass "quit" als letztes in der Datei steht, trennt sich das Script wieder sauber vom Server.

Jetzt wäre eigentlich alles in Ordnung, wir wollen aber noch eben unseren Müll beseitigen - nämlich unseren temp-Ordner. Wir fragen ihn also mit der folgenden Aktion nochmal explizit ab:


...und schmeißen ihn daraufhin bedenkenlos weg:


Und schon ist unser Dienst fertig und bereit zum Ausprobieren.

Zunächst speichern wir ihn mittels Menü "Ablage" > "Sichern".


Jetzt können wir iPhoto starten. Wir wählen ein beliebiges Album, markieren ein paar Bilder und schauen dann mal ins Menü "iPhoto" > "Dienste". Wir finden daraufhin folgenden Eintrag:


Ein Klick und wenige Sekunden (oder Minuten, je nach Umfang) später sind die Bilder hochgeladen. Bei diesen Diensten ist es wichtig, dass man abwartet, bis das Zahnrädchen oben rechts in der Menüleiste verschwindet. Während dieses sich dort dreht, läuft der Dienst.

Ausblick

Dieses Tutorial ist nur die Spitze des Eisbergs und soll zeigen, wie man mit einfachen Mitteln künftig Routineaufgaben schneller und bequemer ausführen kann und dabei auch die Schwächen des Finders sinnvoll umschifft. Natürlich lässt sich so ein Dienst universell einsetzen. Man kann alles mögliche damit hochladen, man kann auch das Zielverzeichnis des Servers abfragen lassen, man kann die Dateiendungen zuvor einheitlich umbenennen etc. Wer ein wenig damit spielt und so etwas ggf. für eigene Zwecke einsetzen kann, wird sicher noch die eine oder andere Idee haben.

Kommentare

sunsite
sunsite10.09.10 19:23
Danke vielmals hierfür. Erstens für den Dienst und Zweitens für dass Super geschriebene Tutorial. So Stell ich mir das immer vor
snowman-x10.09.10 19:33
ich würde mich über mehr solcher automator tutorials freuen!!!!!
flocko11.09.10 10:47
Wow super, danke! Konnte viel lernen. Würde es gerne auf Lightroom übertragen. Hat es schon jemand geschafft?
Schlicki2808
Schlicki280811.09.10 11:51
Danke Ja, ich werde in Zukunft bestimmt noch weitere Automator-Tutorials posten.
timp11.09.10 14:16
Toll, vielen dank dafür. Werde es demnächst testen... Gerne mehr davon!
Never argue with an idiot. He'll bring you down to his level and then beats you with experience.
thokon11.09.10 20:25
Top Journal, gerne mehr davon!
StorageBase.de
roelzer12.09.10 21:22
Super Journal versuche auch schon seit geraumer Zeit mit dem Automator Aufgaben zu vereinfachen aber finden ist echt schwierig verstehen schon gar nicht macht nur weiter so ist super beschrieben und selbst für mich verständlich
Frank
Frank13.09.10 16:04
Du solltest aber nach "prompt" noch ein "bin" schicken. Es soll doch noch Server geben, die ASCII erwarten. Und dann zerhackt es dir alle Bilder.
_Thor_13.09.10 18:37
Schönes Tutorial, vielen Dank! Vielleicht hast Du Lust auf weitere? Ich hätte nur eine Bitte: Schreib' doch einfach in der "Ich"-Form, dieses "Wir" finde ich stilistisch grausig, klingt irgendwie nach "Pluralis Majestatis".
Gruß / Frank
Schlicki2808
Schlicki280814.09.10 22:07
@Frank: du hast Recht, danke für den Hinweis!
@Thor: hmm...."ich" klingt so unprofessionell, das hat so ein "Poesie-Album-Stil". Aber auf die "man"-Form könnte man sich einigen
Christoph_M
Christoph_M14.09.10 23:54
Vielen Dank für das gelungene Journal!
Frank
Frank15.09.10 11:31
@Schlicki2808: Lass dich nicht einschüchtern. Die altehrwürdige FAZ schreibt auch im "wir"-Stil. Und die muss es ja wissen...
ts-e
ts-e21.09.10 19:17
Geht das ganze auch ohne iPhoto?
Wenn deine Bilder nicht gut genug sind, warst du nicht nah genug dran. Robert Capa
Schlicki2808
Schlicki280821.09.10 22:58
@ts-e: das geht letztlich mit allem. Du kannst auch die Dateien eines bestimmten Ordners abfragen oder - sofern Plug-Ins vorhanden - andere Programme verwenden.

Kommentieren

Sie müssen sich einloggen, um diese Funktion nutzen zu können.

OK MacTechNews.de verwendet Cookies unter anderem für personalisierte Inhalte, Seitenanalyse und bei der Auslieferung von Google-Anzeigen. Dies war zwar schon immer so, auf Wunsch der EU muss nun jedoch explizit darauf hingewiesen werden. Durch Nutzung der Website erklären Sie sich damit einverstanden. Weitere Informationen