Neu seit Version 2022 von ON1 Photo RAW, ist die Möglichkeit ein Skript während des Exports auszuführen.
(FUJIFILM, X-T3 mit FUJINON XF150-600mmF5.6-8 R LM OIS WR @600.0mm, 1/200s, f/8.0 und ISO1600)
Das Skript wird wie im Folgenden gezeigt, in den Export als “Run a Script” eingetragen.
Intro
ON1 und auch dieser Blog haben schon darüber berichtet. Nachdem ich mich mit dem Thema eingehend beschäftigt habe, will ich meine Erkenntnisse mit Euch zu teilen und damit zu einer Automatisierung im RAW-Workflow einen kleinen Beitrag leisten.
Wieso ausgerechnet PowerShell, ON1 beschreibt das doch recht gut für Batch-Dateien und Python Skripte? Das stimmt, aber ich will auf meinen Computer kein Python installieren, zumal PowerShell vorhanden ist und Batch-Dateien mögen eine Reminiszenz an das letzte Jahrtausend sein, sind aber nicht mehr zeitgemäß wenn es um größere Projekte geht.
Um was geht es dann hier?
Das lässt sich einfach sagen, der hier verlinkte Beitrag bei ON1 spricht von sieben Variablen die beim Export bereit stehen und innerhalb eines Skriptes verwendet werden könnn. Ich beschreibe, wie das in PowerShell gemacht wird.
Dieser Beitrag ist genau genommen die Grundlage für den im November erschienenen Blog zu Umbenennung / Korrektur von Dateinamen.
Grundlagen / Anatomie
Das soll und darf auch kein PowerShell-Kurs werden, aber ein paar Punkte sind wichtig.
Ausführen von PowerShell-Skripten
Setzen der Ausführungsrichtlinie von PowerShell, in einer als Administrator gestarteten Sitzung.
# Setzen der Ausführungsrichtlinie von PowerShell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Unblock der heruntergeladenen Datei, entweder mit dem Windows Explorer oder mit Hilfe von PowerShell.
# Unblock der Datei mit PowerShell
Unblock-File -Path .\Get-On1Environment.zip
PowerShell und ein paar Eigenheiten
Wie bei vielen anderen Programmier- und Skriptsprachen, beginnt auch bei PowerShell ein ARRAY bei 0, für 7 Variablen sprechen wir darum von 0 .. 6 und nicht von 1 .. 7
Damit das Skript mit PowerShell ausgeführt werden kann, muss es wie folgt in den Export-Dialog eingetragen werden.
# Eintrag des PowerShell Skriptes in den Export-Dialog
PowerShell.exe -File "C:\Users\\OneDrive\_Config\ON1 Photo RAW Scripts\Get-On1Environment.ps1" '%filename%' '%filepath%' '%guid%' '%size%' '%rating%' '%userflag%' '%preset%'
Abschließend will ich noch erwähnen, dass die Variablen quotiert (mittels einfachen Hochkommata) werden und diese Quotierung im PowerShell-Skript selbst wieder entfernt wird.
Klärung des ON1 Blogs
Der Titel des Beitrag lautet ON1 PHOTO RAW 2022 – How to Run a Script After Export. Das mit dem “Run a Script After Export” ist nur bedingt richtig. Das Skript im Export wird für jede Datei exklusiv ausgeführt und hat damit immer für die aktuell in Bearbeitung befindliche Datei Gültigkeit. Werden also 23 Dateien exportiert, so läuft das Skript 23 mal, für jede einzelne Datei in diesem Export. Die mit diesem Skript erstellte Log-Datei wird dabei überschrieben.
Handhabung der Variablen
ON1 bietet die folgenden Variablen für eine automatisierte Weiterverarbeitung an.
- %filename%, The filename of the exported photo
- %filepath% ,The path of the exported photo
- %guid% ,ON1 PhotoRaw’s internal ID of this photo
- %size% ,The exported file size of the photo
- %rating% ,The metadata rating of the photo
- %userflag% ,The Like/Dislike flag of the photo
- %preset% ,Name of export preset. This will be none for just the current settings
Von diesen hat unter PowerShell der „%preset%” eine Eigenart bezüglich der Behandlung von Leerzeichen im Namen. Kommen die vor, dann wirkt ein Leerzeichen als Delimiter (Trennfunktion) und damit wird das ARRAY in PowerShell um zusätzliche Felder erweitert, die ich in der Variabel $Preset zusammengefügt habe.
# Behandlung von Presets in der Variabel
[int32]$IndexOfLastElement = $args.length - 1
[string]$Preset = $args[6..$IndexOfLastElement] -replace "'"
Hier das Skript als partieller Screenshoot …
… und hier zum Herunterladen. Wie ich schon oben gesagt habe, dass Skript ist eine Demonstration die zeigt, welche Werte in den Variablen für eín Bild hinterlegt sind.
Damit stellt sich die Frage, was kann man damit anfangen?
Zukünftige Projekte
Gemacht habe ich ein Skript das den Dateinamen von Versionen (ON1 Photo RAW, Version erstellen) korrigiert, dass hier kürtlich vorgestellt wurde.
Zusätzlich, aber das ist speziell … könnten die erstellten JPEGs auf verschiedene Laufwerke verteilt werden. So ganz grob …
Ich erzeuge immer zwei JPEG-Dateien, eine mit voller Auflösung die auf dem NAS liegt (separiert von den RAW-Dateien und Entwicklungsdaten) und eine mit 75% Auflösung die ich in meinen OneDrive speichere.
Beim Export könnten man nun die 75% Datei in einem automatisch erzeugten Ordner ins OneDrive legen und das JPEG mit voller Auflösung direkt auf das NAS.
Danke fürs Vorbeischauen, Euer Albfotograf
Pingback: ON1 Photo RAW 2022 ff | How to run a PowerShell Script after Export | Der Albfotograf·