Wie speichere ich benutzerdefinierte Metadaten in einem Bild, wenn ich das Bild mit AVFoundation framework
?
Ich weiß, dass ich auf die Eigenschaften zugreifen kann, wenn ich mein Bild als UIImage
oder CIImage
habe, aber die Eigenschaften, die diese zu haben scheinen, unterscheiden sich voneinander (auch wenn es das gleiche Bild ist).
Bisher greife ich wie folgt auf das Wörterbuch zu: (Code aus Caffeinated Cocoa blog)
%Vor%Und ich kann mein Bild entweder so speichern:
%Vor%Oder wie das
%Vor%KEINE der beiden Optionen gibt mein benutzerdefiniertes Rohdatenverzeichnis zurück.
Zusammenfassend möchte ich mein eigenes Objekt in einem von mir erstellten Feld speichern (in diesem Fall ein cmattitude-Objekt)
PD: Wenn ich% %% das Wörterbuch vor dem Zusammenführen mit dem Bild, es hat alle Dateien wie ich will sie haben.
%Vor%Aber wenn ich das Wörterbuch vom neuen Bild NSLOG gebe, gibt es mir das für die CIIMage:
%Vor% Und wenn ich NSLOG
NSLog
es gibt mir noch weniger Informationen.
Danke!
UIImage
und CIImage
enthalten nicht alle Metadaten. Tatsächlich werden bei der Konvertierung von NSData
in eines dieser beiden Formate viele dieser Metadaten entfernt, sodass IMHO, UIImage
und CIImage
nur verwendet werden sollten, wenn Sie planen, sie in der Benutzeroberfläche anzuzeigen oder zu übergeben es zu CoreImage .
Sie können die Bildeigenschaften wie folgt lesen:
%Vor% Sie können dann Ihre NSDictionary
in eine NSMutableDictionary
:
Fügen Sie danach die Felder hinzu, die Sie möchten. Beachten Sie, dass EXIF -Daten gefunden werden, indem Sie die kCGImagePropertyExifDictionary
, GPS -Daten nach kCGImagePropertyGPSDictionary
usw. ablegen, und so weiter:
Sehen Sie sich die Header-Datei CGImageProperties
für alle verfügbaren Schlüssel an.
Okay, jetzt, wo Sie die Änderungen, die Sie an den Metadaten vorgenommen haben, vorgenommen haben, müssen Sie noch ein paar Schritte ausführen:
%Vor%Und da hast du es.
Tags und Links objective-c iphone ios xcode4.2