Altglas Dateien mit fehlenden EXIF Informationen bestücken

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Hagbard Celine
Posts: 29
Joined: 08 Jul 2018, 04:42

Altglas Dateien mit fehlenden EXIF Informationen bestücken

06 Nov 2021, 11:46

Jemand hatte mir mal vor längerer Zeit ein Skript überlassen, mit welchem ich in der Apple Welt mit dem Automator eine Oberfläche aufrufen konnte, quasi eine GUI und Daten auswählen, um diese dann mittels ExifTool in die Bilddateien zu schreiben. Lässt sich so etwas auch mit AHK realisieren? Ich weiß leider nicht wie das geht, wäre für jede Hilfe dankbar!

Dies hier war das Skript:

Code: Select all

--Objektiv auswählen:
set meinObjektiv to item 1 of (choose from list {"Olympus Zuiko Macro OM 50mm F3,5-22", "Olympus G.Zuiko Auto-S OM 50mm F1,4-16"} with prompt "Wählen Sie das Objektiv aus: ")

--Blende auswählen:
set Blende to item 1 of (choose from list {"1,4", "1,8", "2", "2,8", "3,5", "4", "5,6", "8", "11", "16", "22"} with prompt "Wählen Sie die Blende aus: ")

--Brennweite auswählen:
set Brennweite to item 1 of (choose from list {"24", "28", "35", "50", "85", "100", "135"} with prompt "Wählen Sie die Brennweite aus: ")

--Bilder auswählen:
set meineBilder to choose file with prompt "Wählen Sie die Bilder aus: " with multiple selections allowed

set exif to "exiftool -overwrite_original -Lens=" & quoted form of meinObjektiv & " -ApertureValue=" & quoted form of Blende & " -FNumber=" & quoted form of Blende & " -FocalLength=" & quoted form of Brennweite & " "

repeat with meinBild in meineBilder
	do shell script exif & quoted form of POSIX path of meinBild
end repeat
Dankeschön H.C.
just me
Posts: 9550
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Altglas Dateien mit fehlenden EXIF Informationen bestücken

07 Nov 2021, 05:43

Moin,

möglicherweise so oder so ähnlich:

Code: Select all

#NoEnv
; Konstanten
ExifExe := "Vollständiger Pfad der Exe" ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Objektive := "Olympus Zuiko Macro OM 50mm F3,5-22|Olympus G.Zuiko Auto-S OM 50mm F1,4-16"
Blenden := "1,4|1,8|2|2,8|3,5|4|5,6|8|11|16|22"
Brennweiten := "24|28|35|50|85|100|135"
; Variablen
Bilder := ""
; ----------------------------------------------------------------------------------------------------------------------
Gui, Margin, 20, 20
Gui, Font, s10
; Objektiv auswählen:
Gui, Add, Text, , Wählen Sie das Objektiv aus:
Gui, Add, DDL, xm y+5 w400 vObjektiv Choose1, %Objektive%
; Blende auswählen:
Gui, Add, Text, , Wählen Sie die Blende aus:
Gui, Add, DDL, xm y+5 w400 vBlende Choose1, %Blenden%
; Brennweite auswählen:
Gui, Add, Text, , Wählen Sie die Brennweite aus:
Gui, Add, DDL, xm y+5 w400 vBrennweite Choose1, %Brennweiten%
; Bilder auswählen:
Gui, Add, Button, w400 gSelect, Wählen Sie die Bilder aus:
; ExifTool aufrufen
Gui, Add, Button, w400 vBtnOK gStart +Disabled, OK
Gui, Show, , Exif Daten
Return
; ----------------------------------------------------------------------------------------------------------------------
Select:
Bilder := ""
FileSelectFile, Bilder, M3, , Wählen Sie die Bilder aus:
If (ErrorLevel) || (Bilder = "")
   Return
GuiControl, -Disabled, BtnOK
Return
; ----------------------------------------------------------------------------------------------------------------------
Start:
Gui, Submit, NoHide
If (Bilder = "")
   Return
ExifCmd := ExifExe
         . " -overwrite_original"
         . " -Lens=""" . Objektiv . """"
         . " -ApertureValue=""" . Blende . """"
         . " -FNumber=""" . Blende . """"
         . " -FocalLength=""" . Brennweite . """"
For I, Bild In StrSplit(Bilder, "`n") {
   If (I = 1)
      Verzeichnis := RTrim(Bild, "\")
   Else
      RunWait, %ExifCmd% "%Verzeichnis%\%Bild%"
}
Bilder := ""
GuiControl, +Disabled, BtnOK
Return
; ----------------------------------------------------------------------------------------------------------------------
GuiClose:
ExitApp
Hagbard Celine
Posts: 29
Joined: 08 Jul 2018, 04:42

Re: Altglas Dateien mit fehlenden EXIF Informationen bestücken

07 Nov 2021, 07:30

WOW vielen Dank, das sieht schon einmal sehr gut aus, leider schreibt das Skript die Daten nicht in die Dateien.

Ich habe das Skript mit der Endung *.ahk gespeichert und der ersten Zeile den Pfad zum ExiffTool angegeben.

Leider sind meine Fähigkeiten dermaßen begrenzt, dass ich nicht weiß woran das ganze scheitert, sorry

Danke & Gruß
just me
Posts: 9550
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Altglas Dateien mit fehlenden EXIF Informationen bestücken

07 Nov 2021, 08:59

Hallo,

versuch zunächst einmal, ein Komma und den Verzeichnisnamen des ExifTools an das RunWait Kommando anzuhängen. Wenn das nichts bringt, tausche mal das Kommando RunWait gegen MsgBox. Die Kommandozeile kannst Du dann mit Strg+c kopieren, während die MsgBox angezeigt wird, und per Strg+v in ein Editorfenster kopieren. Vielleicht siehst Du jetzt schon, wo der Fehler stecken könnte. Wenn nicht, machst Du ein CMD-Fenster auf, gehst in das Skriptverzeichnis und tickerst die Kommandozeile per Hand ein. Spätestens jetzt sollte der Fehler sichtbar werden.
garry
Posts: 3788
Joined: 22 Dec 2013, 12:50

Re: Altglas Dateien mit fehlenden EXIF Informationen bestücken

07 Nov 2021, 09:38

habe versucht , für Test : statt runwait > Fileappend , d.h. ins Text-Datei zu schreiben
wenn man mehr als ein Bild auswählt , erscheint der Befehl mehrmals ohne Trennung auf einer Linie
habe ExifExe in Anführungszeichen gesetzt > "Vollständiger Pfad der Exe"

Code: Select all

;....
transform,s,chr,34
ExifCmd := s . ExifExe . s
         . " -overwrite_original"
         . " -Lens=""" . Objektiv . """"
         . " -ApertureValue=""" . Blende . """"
         . " -FNumber=""" . Blende . """"
         . " -FocalLength=""" . Brennweite . """"
For I, Bild In StrSplit(Bilder, "`n") {
   If (I = 1)
      Verzeichnis := RTrim(Bild, "\")
   Else
      Fileappend, %ExifCmd% "%Verzeichnis%\%Bild%",test55.txt,utf-8
      ;...
Hagbard Celine
Posts: 29
Joined: 08 Jul 2018, 04:42

Re: Altglas Dateien mit fehlenden EXIF Informationen bestücken

14 Nov 2021, 03:38

Habt vielen Dank, aber ich bekomme es nicht hin, sorry

H.C.
garry
Posts: 3788
Joined: 22 Dec 2013, 12:50

Re: Altglas Dateien mit fehlenden EXIF Informationen bestücken

14 Nov 2021, 09:41

@just me 's example ist korrekt , Programpath braucht keine Anführungszeichen ""
Test mit exiftool war ok
Versuch mit einem Bild ( falls mehrere Bilder denn sollten die Zeilen getrennt werden , da alles auf einer Linie )

Code: Select all

;- Altglas Dateien mit fehlenden EXIF Informationen bestücken 
;- https://www.autohotkey.com/boards/viewtopic.php?f=9&t=96384

;--------- EXIFTOOL.exe ---------------------------------------------------------
;- https://oliverbetz.de/pages/Artikel/ExifTool-for-Windows
;- https://oliverbetz.de/cms/files/Artikel/ExifTool-for-Windows/exiftool-12.34_64.zip
;- https://exiftool.org/forum/
;--------------------------------------------------------------------------------

#NoEnv
ExifExe    := "D:\M_GARRY\PROGRAMME_SA\EXIFTOOL\exiftool.exe"
;pr:=ExifExe
;runwait,%comspec% /c %pr% C:\Users\GARRY\Desktop\FOTO_TEST\Border_Terrier.jpg >test81.txt,,hide
;run,test81.txt
;exitapp
;------------------------------------------------------------
Objektive  := "Olympus Zuiko Macro OM 50mm F3.5-22|Olympus G.Zuiko Auto-S OM 50mm F1`,4-16"
Blenden    := "1.4|1.8|2|2.8|3.5|4|5.6|8|11|16|22"
Brennweiten:= "24|28|35|50|85|100|135"
Bilder     := ""
; ----------------------------------------------------------------------------------------------------------------------
Gui, Margin, 20, 20
Gui, Font, s10
Gui, Add, Text, , Wählen Sie das Objektiv aus:
Gui, Add, DDL, xm y+5 w400 vObjektiv Choose1, %Objektive%
Gui, Add, Text, , Wählen Sie die Blende aus:
Gui, Add, DDL, xm y+5 w400 vBlende Choose1, %Blenden%
Gui, Add, Text, , Wählen Sie die Brennweite aus:
Gui, Add, DDL, xm y+5 w400 vBrennweite Choose1, %Brennweiten%
Gui, Add, Button, w400 gSelect, Wählen Sie die Bilder aus:
Gui, Add, Button, w400 vBtnOK gStart +Disabled, OK
Gui, Show, , Exif Daten
Return
; ----------------------------------------------------------------------------------------------------------------------
Select:
Bilder := ""
FileSelectFile, Bilder, M3, , Wählen Sie die Bilder aus:
If (ErrorLevel) || (Bilder = "")
   Return
GuiControl, -Disabled, BtnOK
Return
; ----------------------------------------------------------------------------------------------------------------------
Start:
Gui, Submit, NoHide
;-------------------
;- for test
F1=%a_scriptdir%\Exif_Test.txt
ifexist,%f1%
  filedelete,%f1%
;-------------------
If (Bilder = "")
   Return
;-----------
/*
ExifCmd :=  ExifExe
         . " -overwrite_original"
         . " -Lens=""" . Objektiv . """"
         . " -ApertureValue=""" . Blende . """"
         . " -FNumber=""" . Blende . """"
         . " -FocalLength=""" . Brennweite . """"
*/
;------------
;-
;- D:\M_GARRY\PROGRAMME_SA\EXIFTOOL\exiftool.exe -overwrite_original -Lens="Olympus Zuiko Macro OM 50mm F3,5-22" -Aperturevalue="4" -FNumber="4" C:\Users\GARRY\Desktop\FOTO_TEST\Border_Terrier.jpg
;-
pr:=ExifExe
;aa= -overwrite_original -Lens="%objektiv%" -Aperturevalue="%blende%" -FNumber="%blende%" -Focallenght="%brennweite%"  ; focallenght not found
aa= -overwrite_original -Lens="%objektiv%" -Aperturevalue="%blende%" -FNumber="%blende%"

For I, Bild In StrSplit(Bilder, "`n") {
   If (I = 1)
      Verzeichnis := RTrim(Bild, "\")
   Else
      {
      ;Fileappend, %pr% %aa% %Verzeichnis%\%Bild%,%f1%,utf-8  ; for test
      runwait,%comspec% /k %pr% %aa% %Verzeichnis%\%Bild%
      }
}
Bilder := ""
GuiControl, +Disabled, BtnOK
Return
; ----------------------------------------------------------------------------------------------------------------------
GuiClose:
ExitApp
;=============================

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 4 guests