Informacja: Korzystanie z funkcji Swift i CGImageSourceCreateWithURL.Swift z dostępem do EXIF Słownik
Próbuję wczytać plik z adresu URL, a następnie edytować słownik zawierający wszystkie dane z tego konkretnego zdjęcia.
To jest kod z pliku .swift.
let url = NSURL(string: "http://jwphotographic.co.uk/Images/1.jpg")
let imageSource = CGImageSourceCreateWithURL(url, nil)
let imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil) as Dictionary
println(imageProperties)
//this is an example
let aperture = imageProperties[kCGImagePropertyGPSLatitude] as! NSNumber!
/*
//these are all being defined as nil
//Load the ones from the exif data of the file
let lensUsed = imageProperties[kCGImagePropertyExifFocalLength]
let aperture = imageProperties[kCGImagePropertyExifApertureValue] as!
let isoSpeed = imageProperties[kCGImagePropertyExifISOSpeedRatings] as! NSNumber
let latitude = imageProperties[kCGImagePropertyGPSLatitude] as! NSNumber
let longitude = imageProperties[kCGImagePropertyGPSLongitude] as! NSNumber
let shutterSpeed = imageProperties[kCGImagePropertyExifShutterSpeedValue] as! NSNumber
let cameraName = imageProperties[kCGImagePropertyExifBodySerialNumber] as! NSNumber
*/
println(aperture)
Chociaż właściwości graficzne drukuje wszystkie dane, jak można było oczekiwać, bez względu na to, co mam attmpted wyodrębnić ze słownika imageProperties - jest zawsze zwracane jako null - takich jak „otwór” w przykładzie. Właściwość imageProperties drukuje jako;
[{TIFF}: {
Artist = JOHN;
Copyright = "[email protected]";
DateTime = "2015:07:31 21:07:05";
Make = Canon;
Model = "Canon EOS 7D Mark II";
ResolutionUnit = 2;
Software = "Adobe Photoshop Lightroom 6.0 (Macintosh)";
XResolution = 72;
YResolution = 72;
}, {IPTC}: {
Byline = (
JOHN
);
CopyrightNotice = etc.. etc..
Zrobiłem wiele badań i testów, a ja po prostu nie może się zorientować, co robię źle, aby uzyskać dostęp do elementów w tym słowniku - mógłby ktoś dać mi przykład jak bym ustawić zmienną jako Element "Model" w słowniku?
Dzięki za wszelką pomoc, John
Czy istnieje sposób uzyskania informacji o kamerze z biblioteki zdjęć? Dzięki –
Tak, zredagowałem swoją odpowiedź, aby pokazać przykład jak to zrobić w najnowszym Swift/Xcode – Cortex