EXIF ändern abhängig von EXIF

southy

Mitglied
Registriert
07.09.04
Beiträge
20
Hallo,

nach langer Abwesenheit mal wieder ein Beitrag von mir.

Ich habe hier das Problem, daß aufgrund Probleme mit Speicherkarten während der letzten Wochen zwei Personen mit den selben Karten in untersch. Fotoapparaten (Ixus 400 & Ixus 430) fotografiert haben.

Ich habe also lauter Folder mit Fotos, bei denen nur durch das EXIF-Tag "Kamera" entschieden werden kann, von wem sie sind.
Seht Ihr irgendeine Möglichkeit,
1. in Abhängigkeit von "Kamera = Ixus 400 | Ixus 430" zu setzen: Fotograf = "Person 1 | Person 2"
2. Filname zu setzen = "Datum/irgendwas-Fotograf"

Ich habe grade Exifer angesehen, damit könnte ich zumindest mal den String, der in "Kamera" steht, in den Dateinamen kopieren, das wäre ein Anfang, den könnnte ich dann für alle Bilder ersetzen lassen, z.b. mit Flash Renamer.
Aber gibt es noch eine direkte Lösung, die auch das "Fotograf"-Tag ändert?

Vielen Dank für Eure Hilfe,
southy
 
AW: EXIF ändern abhängig von EXIF

Hi

Geht mit einem Skript recht problemlos.

Wenn du mir von beiden Cams ein Bild schickst, dann schau ichs mir an.


Grüße

Andreas
 
AW: EXIF ändern abhängig von EXIF

Hallo,
ja, mit skripten habe ich vorher auch rumprobiert, aber weil ich noch nie damit gearbeitet habe, bin ich nicht sehr weit gekommen.

Habe Dir mal eine PN geschickt.

Viele Grüße,
Jan
 
AW: EXIF ändern abhängig von EXIF

Hi

So, Skript ist fertig: ;D


Code:
'Autor: saruman a-menzel@web.de
'
'Dieses Skript benennt die Dateien anhand des Kameranamens aus den Exif um.
'Ausserdem überprüft es alle selektierten Fotos auf Hochformat.
'Dazu nutzt es das Orientation-Flag in den Exif-Daten, das viele Kameras schreiben
'Alle Hochformatfotos werden verlustfrei gedreht und anschliessend das 
'Orientation-Flag zurückgesetzt, damit das Bild bei einem erneuten Durchlauf nicht nochmal
'gedreht wird.

Dim file
Dim User
Dim Datei
Dim Pfad
Dim Dateiname
Dim Extension
Dim DateiCount
Dim Orientation
Dim Camera
Dim i
i = 0

Set fso = CreateObject("Scripting.FileSystemObject")

'Alle selektierten Fotos durchgehen
DateiCount = ff_GetImageCount
while i < DateiCount
	Datei = FF_GetImageName(i)
	SplitPath Datei, Pfad, Dateiname, Extension

	FF_SetProgressText i, DateiCount-1, Datei

	'Wenn die Exif-Daten fehlen, das Bild überspringen
	If FF_LoadExif(Datei) Then
		If FF_HasExif Then
	
			Orientation = FF_GetExifTag("Orientation")
			Camera = FF_GetExifTag("Model")
			
			'User anhand der Cam ermitteln
			If Camera = "Canon DIGITAL IXUS 400" then
				User = "Jan_"
			elseif Camera = "Canon DIGITAL IXUS 430" then
				User = "Jessi_"
			elseif Camera = "Canon PowerShot A300" then
				User = "Loosi_"			
			end if
			
			FF_SetExifTag "Artist", User
			
			'Wenn Hochformat oder Kopfüber, dann Exif-Daten zurücksetzen
			If Orientation = 3 or Orientation = 6 or Orientation = 8 then
				FF_SetExifTag("Orientation"), 1
			end if

			'Exif speichern
			FF_SaveExif Datei
	
			'Jetzt wird verlustfrei gedreht
			If Orientation = "8" Then	  
				FF_RotateFile Datei, 270
			ElseIf Orientation = "6" Then
				FF_RotateFile Datei, 90
			ElseIf Orientation = "3" Then
				FF_RotateFile Datei, 180
			End If

			'Datei umbenennen
			fso.MoveFile Datei, Pfad & "\" & User & "_" & Dateiname & LCase(Extension)

		End If		
	End If
	i=i+1
wend


Sub SplitPath(path, ByRef dirc, ByRef file, ByRef ext)
  dirc = fso.GetParentFolderName(path)
  file = fso.GetBaseName(path)
  ext = "." & fso.GetExtensionName(path)
End Sub

Einfach alle Fotos in der Vorschauansicht markieren, den SkriptEditor aufrufen, das Skript einfügen und ausführen.

Bei mir hats geklappt.


Grüße

Andreas
 
AW: EXIF ändern abhängig von EXIF

Hallo southy,

wenn in den Kameras mit der Kamerasoftware die jeweiligen Eigentümer/Benutzer eingetragen sind, so werden mit dem Skript MKCanon Copyright1+2 sowie Fotograf die Namen der Kameraseigentümer eingetragen, sofern in der MKCanon.ini keine anderen Spezifikationen angegeben worden sind.

Nebeneffekt: Backup wird erstellt(wenn aktiviert) und Bilder werden gedreht, sofern hochkant geknipst wurde.

Schönen Gruß,
Werner.
 
AW: EXIF ändern abhängig von EXIF

Hi W.P.

Benennt MKCanon die Dateien anhand des Eigentümers um?

Grüße

Andreas
 
AW: EXIF ändern abhängig von EXIF

Hallo,

wow, das funktioniert!
Vielen, vielen Dank Saruman, das ist wirklich Rettung in der Not.
Danke auch für die kleine Zusatzfunktion mit dem automatischen Drehen.
Ich schätze, ich sollte mir die skripting-Möglichkeiten tatsächlich mal genauer anschauen, das sieht ja garnicht so kompliziert aus.
Sieht irgendwie BASIC oder VB - Verwandt aus.

Vielen Dank nochmal, ich nudele gerade ein paar hundert Bilder durch, heute mittag gibts ne Vorfürung bei Freunden.

VIelen Dank und viele Grüße,
Jan

P.S.: Ich nutze die Canon-Software derzeit nicht, daher bin ich jetzt da drauf garnicht gekommen.
 
AW: EXIF ändern abhängig von EXIF

Hallo southy,

du kannst in FixFoto die Skripte in VBScript und JScript schreiben. Die Erweiterungen für die Stapelverarbeitung funktionieren jedoch nur mit JScript.

Grüße
Micha
 
AW: EXIF ändern abhängig von EXIF

Hi Southy

Freut mich, dass es funktioniert. :-)

Grüße

Andreas
 
AW: EXIF ändern abhängig von EXIF

Hallo Andreas,
Saruman schrieb:
Benennt MKCanon die Dateien anhand des Eigentümers um?
wird wohl nicht gehen, da erst umbenannt und dann der Name aus den MakerNotes in das Standard-Exif eingetragen wird.

Geht nicht anders, da sonst das (mögliche) Backup nicht mehr das Original-Kamera-Bild enthält und dem bearbeiteten Bild bei Bedarf zuzuordnen ist.

Nach dem Skriptdurchlauf von MKCanon ist es jedoch möglich, die Stapelverarbeitung (oder einfach nur Umbenennen) darüberlaufen zu lassen, dass den Namen aus Artist (Standard-Exif) entnimmt und in den Dateinamen einträgt.

Schönen Gruß,
Werner.
 
AW: EXIF ändern abhängig von EXIF

Hallo Jan,
southy schrieb:
Sieht irgendwie BASIC oder VB - Verwandt aus.
kommt daher, dass VBScript eine Sub-Menge aus VBA und VB ist ;) .

Schönen Gruß,
Werner.
 
AW: EXIF ändern abhängig von EXIF

Hi Werner

Wie kann ich denn beim Umbenennen den Artist in den Dateinamen bekommen?

Das klappt bei mir auch mit der Stapelverarbeitung nicht, deshalb hat das mein Skript ja gemacht.....

Grüße

Andreas
 
AW: EXIF ändern abhängig von EXIF

Hallo Andreas,

uuups, sind nur Zeit und Nummern-Tags darinnen.
In dem Fall muss z. B. mit MeinArtist%nam4,8% der Name manuell eingetragen werden. Die Ziffernnummerierung bleibt hier erhalten.

Eingabe bei Joachim machen. Vielleicht ergänzt er ein paar "sinnvolle" Exif-Tags.

Schönen Gruß,
Werner.
 
AW: EXIF ändern abhängig von EXIF

Hallo Andreas,

nur kurz eine Anmerkung, daß das Script gelegentlich (scheinbar zufällig alle paar Dutzend Bilder) stoppt und eine Fehlermeldung ausgibt:

> Typen unverträglich: '[string: ""]'
> Src: Laufzeitfehler in Microsoft VBScript
> Line:53 Error:0 Scode:800a000d
> If Orientation = 3 or Orientation = 6 or Orientation = 8 then

Ich kopiere das jeweils letzte Bild dann weg und mache es manuell, dann gehts.

EDIT: Scheint immer dann aufzutreten, wenn das Script auf ein Bild stösst, welches bereits vorher mit dem Script behandelt wurde. Wird evtl. an dem Orientation-Tag was falsch gesetzt?

Ist für mich aber kein Problem, ich habe die Handvoll betroffenen händisch im Griff ;-)

Viele Grüße,
Jan
 
Zuletzt bearbeitet:
AW: EXIF ändern abhängig von EXIF

Hallo,

es muss ein möglicher Fehler abgefangen werden: Nämlich das es das Orientation-Flag nicht gibt, oder ein falscher Wert (Leerzeichen etc.) eingetragen ist!
Hier liefert FF eine leere Zeichenkette.

Wird per Script das Orientation-Flag manipuliert, so muss danach "1" eingetragen werden.

Ob das Orientation-Flag existiert oder falsch belegt ist, kann mit WPInfo oder jedem anderen Exif-Reader geprüft werden.

Schönen Gruß,
Werner.
 
AW: EXIF ändern abhängig von EXIF

Moin

Southy schick mir bitte mal ein Foto, bei dem das Problem auftritt.

Dass das Problem bei Bildern auftritt, die schonmal vom Skript bearbeitet wurden ist eigentlich nicht möglich. Das Skript ändert das OrientationFlag evtl., aber es wird dann auf 1 gesetzt, und das ist so richtig.

Bei dem Fehler sieht es so aus, als ob es garnicht existiert. FF gibt scheinbar einen String der Länge 0 zurück. Aber das würde ich mir gerne genauer ansehen, also her mit dem Foto. :-)

Grüße

Andreas
 
Zurück
Oben