Hallo!
Ich habe folgendes Problem:
Unter Tiger kann man ja sehr leicht auf EXIF-Daten von JPEGs zugreifen. Das Lesen dieser Daten scheint auch problemlos zu funktionieren (auch wenn einige Felder zu fehlen scheinen).
Wenn ich allerdings einen NSString im Dictionary unter dem Key "UserComment" speichere und dann das Bild speichern möchte, erhalte ich die Meldung:
rejected UserComment
im Run Log.
Hier ein Code-Schnipsel:
Alles anzeigen
Das Setzen von z.B. einer NSNumber für "WhiteBalance" funktioniert allerdings.
Alle Werte außer UserComment werden korrekt geschrieben, wie man sieht, wenn man die Metadaten wieder einliest. Nur das UserComment-Feld (was vorher offenbar einen NSString bzw. NSCFString, der nur aus Leerzeichen bestand, enthielt) ist verschwunden.
Gerade das Schreiben von UserComments wäre eine Funktion, die ich sehr gerne einsetzen würde. Weiß jemand Rat?
klg
Ich habe folgendes Problem:
Unter Tiger kann man ja sehr leicht auf EXIF-Daten von JPEGs zugreifen. Das Lesen dieser Daten scheint auch problemlos zu funktionieren (auch wenn einige Felder zu fehlen scheinen).
Wenn ich allerdings einen NSString im Dictionary unter dem Key "UserComment" speichere und dann das Bild speichern möchte, erhalte ich die Meldung:
rejected UserComment
im Run Log.
Hier ein Code-Schnipsel:
Quellcode
- NSData *bitmapData;
- NSMutableDictionary* jpegAttributes = [[NSMutableDictionary alloc] init];
- [jpegAttributes setObject:[NSNumber numberWithFloat:1.0]forKey:@"NSImageCompressionFactor"];
- // Image laden
- NSImage* image = [[NSImage alloc] initWithContentsOfFile:imagePath];
- // Representations holen
- NSArray* reps = [image representations];
- // Die NSBitmapImageRep holen
- NSBitmapImageRep* bmir = [reps objectAtIndex:0];
- // Property setzen
- [bmir setProperty:@"NSImageEXIFData" withValue:exifDict];
- // Und das ganze schreiben
- bitmapData = [bmir representationUsingType:NSJPEGFileType properties:jpegAttributes];
- BOOL ok = [bitmapData writeToFile:exifImagePath atomically:YES];
Das Setzen von z.B. einer NSNumber für "WhiteBalance" funktioniert allerdings.
Alle Werte außer UserComment werden korrekt geschrieben, wie man sieht, wenn man die Metadaten wieder einliest. Nur das UserComment-Feld (was vorher offenbar einen NSString bzw. NSCFString, der nur aus Leerzeichen bestand, enthielt) ist verschwunden.
Gerade das Schreiben von UserComments wäre eine Funktion, die ich sehr gerne einsetzen würde. Weiß jemand Rat?
klg

