Ändern eines Exif-Feldes

Birdman

Mitglied
Dabei seit
10.10.06
Beiträge
126
Standort
Unterhaching
#1
Hallo zusammen,

vielleicht kann mir jemand einen Tipp für ein stapelverarbeitungsfähiges Miniskript geben, mit dem ich den Inhalt eines Exifdaten-Feldes umbenennen kann. Mit dem Programm Exiftools habe ich es inzwischen geschafft, meine Pentax Objektivdaten aus den Makernotes in die Bildbeschreibung zu übertragen. Leider sind das wahre Bandwurmbezeichnungen, die möchte ich nun gerne automatisch kürzen.
Ich hab leider von Skripten keinerlei Ahnung, nach meinen Recherchen bei anderen FF-Skripten könnte es wohl so ähnlich aussehen:
- Einlesen mit "FF_GetExifTag("ImageDescription")"
- dann mit if-Bedingungen die 4-5 Objektivtypen abfangen und umschreiben, also z. B.
wenn ImageDescription = "smc PENTAX -DA ganz laaaanger Name1"
dann setze ImageDescription = "PENTAX kurzer Name1"

wenn ImageDescription = "smc PENTAX -DA ganz laaaanger Name2"
dann setze ImageDescription = "PENTAX kurzer Name2"

usw.

Für Eure Hilfe schon mal vielen Dank im Voraus!
Birdman
 

Niels1938

Mitglied
Dabei seit
15.05.03
Beiträge
1.723
Standort
15 km nördlich von Kopenhagen, Dänemark
#2
AW: Ändern eines Exif-Feldes

Hallo Birdman,

Ich habe vor kurzen mir mit solche Sachen beschäftigt in Thema :
"Vollautomatisierung von KissenEntzerrung für alle Digicams"

http://www.ffsf.de/showthread.php?t=9559

Wie du ja weiss ist ein grosses Problem bei DSLR's , dass die Exif Daten keine direkte Werten von die verwendete Objektive haben.
Ich will Bilder auch von deiner fünf Objektiven auf dein K100D gern sehen, vielleicht kann meiner Methode benutzt werden.
Es ist am einfachsten, wenn du die Bilder zugänglich auf WEB Space stellst, ein andere Methode ist als Email Anhang.
Die Bilder MUSS ganz unbehandelt von Kamera kommen, es reicht mit ein Bild kleinste Auflösung und höchste Kompression von jeder Objektiv.


Grüsse,
 

Birdman

Mitglied
Dabei seit
10.10.06
Beiträge
126
Standort
Unterhaching
#3
AW: Ändern eines Exif-Feldes

Hallo Niels,

Danke für Deine Rückmeldung und den Hinweis auf Dein Skript. Ich habe mittlerweile noch ein wenig rumprobiert und nun für mich ein praktikable, wenn auch programmiertechnisch wahrscheinlich wenig elegante Lösung gefunden.

Falls es Dich interessiert:
1. Mit einer Windows Batch-Datei (LENS2ID.cmd) und der Windows-Version von Exiftool schreibe ich meine Objektivdaten von den Pentax Makernotes in die Exif ImageDescription:
PHP:
path c:\Programme\Exiftool
exiftool "-LensType>ImageDescription" -overwrite_original *.jpg
2. Dann verwende ich folgendes Skript in FF, um die langen Objektivbezeichnung umzuändern:
PHP:
Dim Datei
Dim DateiCount
Dim Bildbeschreibung
Dim Kamera
Dim i
i = 0

DateiCount = ff_GetImageCount
while i < DateiCount
	Datei = FF_GetImageName(i)

	FF_SetProgressText i, DateiCount-1, Datei

	'Wenn die Exif-Daten fehlen, das Bild überspringen
	If FF_LoadExif(Datei) Then
	 	If FF_HasExif Then
	 		Bildbeschreibung = FF_GetExifTag("ImageDescription")
	 		Kamera = FF_GetExifTag("Model")
				If Kamera = "Canon PowerShot S30" then FF_SetExifTag("ImageDescription"), "Canon PowerShot S30"
				If Bildbeschreibung = "smc PENTAX-DA 10-17mm F3.5-4.5 ED [IF] Fisheye zoom" then FF_SetExifTag("ImageDescription"), "K100D mit Pentax DA 10-17mm"
				If Bildbeschreibung = "smc PENTAX-DA 12-24mm F4 ED AL [IF]" then FF_SetExifTag("ImageDescription"), "K100D mit Pentax DA 12-24mm"
				If Bildbeschreibung = "TAMRON XR DiII 18-200mm F3.5-6.3 (A14)" then FF_SetExifTag("ImageDescription"), "K100D mit Tamron 18-200mm"
				If Bildbeschreibung = "TAMRON SP AF 90mm F2.8 (172E)" then FF_SetExifTag("ImageDescription"), "K100D mit Tamron 90mm Makro"
				If Bildbeschreibung = "smc PENTAX-FA 50mm F1.7" then FF_SetExifTag("ImageDescription"), "K100D mit Pentax FA 50mm F1.7"
				If Bildbeschreibung = "smc PENTAX-DA 18-55mm F3.5-5.6 AL" then FF_SetExifTag("ImageDescription"), "K100D mit Pentax DA 18-55mm"
				FF_SaveExif Datei
				end if
			end if    
	
	i=i+1
wend
Bei meinen Versuchen bin ich übrigens auf ein Problem gestossen: obwohl alle Exif-Anzeigeprogramme bei der K100D beim Exif-Tag "Model" "PENTAX K100D" anzeigen, lässt sich dies nicht ansprechen, d. h. ich kann darüber auch keine Auswahl treffen oder es irgendwohin schreiben. Bei meiner Canon geht dieses Tag jedoch problemlos. Ich hab auch schon mal andere Schreibweisen probiert, hast Du da eine Idee?
Edit: Man muss nur lang genug rumprobieren :
Viele Leerzeichen sind die Lösung "PENTAX K100D*******", nach dem D müssen noch genau 7 Blanks folgen! Wahrscheinlich kann man das auch über Platzhalter abfangen, aber soweit gehen meine Programmierkünste denn doch nicht.


Für drei Objektivtypen an der K100D kannst Du übrigens JPG-Bilder inkl. Exif hier runterladen:
http://www.mmbici.de/pentax/thumb.html

Viele Grüße
Birdman
 
Zuletzt bearbeitet:

Niels1938

Mitglied
Dabei seit
15.05.03
Beiträge
1.723
Standort
15 km nördlich von Kopenhagen, Dänemark
#4
AW: Ändern eines Exif-Feldes

Hallo Birdman,

Das hast du ja gut gelöst, nur ein paar Kommentare :

1. Deine Bilder die man herunterladen kann sind nicht unbehandelt, das bedeutet,
dass die Exif's und Herstellernoten sind schon bei ein oder mehrere Programme geändert,
die Ergebnisse kann deshalb unterschiedlich werden, wenn man verwendet direkt unbehandelte Bilder,
oder Bilder die mit andere Programme vorbehandelt sind.

2. Du benutzt den einzeilige Exif Feld "ImageDescription" für Kamera und Objektivname,
"ImageDescription" wird doch meistens für eine kurze Bildbeschreibung benutzt,
ich finde den mehrzeilige Feld "UserComment" besser für Objektivdata.

Basiert auf deine Arbeit, überlege ich jetzt in nächste Version von mein Skript die Objektivname
in eine separate Zeile in "UserComment" (heisst in FixFoto "Kommentar") zu einfügen,
wahrscheinlich doch die "lange Name" , weill die "kurze Name" nicht für alle Objektive vollautomatisch gefunden werden kann.

3. Du verwendest wie ich Program Exiftools,
dass ist ein Program die sich schnell entwickelt, ich bringe hier eine Warnung,
die Ergebnisse von Exiftools kann unterschiedlich sein, abhängig von welsche Version man verwendet.

4. Ich verstehe, dass du verwendest PtLens, ich empfehle doch meine
"Vollautomatisierung von KissenEntzerrung für alle Digicams" , die auf FixFoto "Kissenentzerrung und Farbsaum" basiert ist.


Grüsse,
 

Birdman

Mitglied
Dabei seit
10.10.06
Beiträge
126
Standort
Unterhaching
#5
AW: Ändern eines Exif-Feldes

Hallo Niels,

wenn Du auf der Übersichtsseite meines Links ganz oben schaust, da kommst Du zu den Originaldateien (zumindest bilde ich mir ein, die nicht bearbeitet zu haben). Falls Du noch weitere oder andere Dateien benötigst, melde Dich einfah hier.

Mit dem UserComment-Feld hatte ich bei Exiftool etwas Schwierigkeiten, deshalb habe ich für mich das andere Feld gewählt. Die Objektivdaten generell als Originalname zu belassen, finde ich gut. Wer möchte, kann sich diese dann ja individuell kürzen oder umbenennen.

Ich werde Dein Skript demnächst mal ausprobieren. PTLens habe ich nur für diesen Brennweitenvergleich der beiden Pentax SWW-Objektive benutzt, die ich auch nur mal testweise zur Verfügung hatte. Sonst entzerre ich Bilder eher selten.

Viele Grüße
Birdman
 
Oben