Info: using Swift and the CGImageSourceCreateWithURL function.
I am trying to download a file from a URL and then edit a dictionary that has all the data from this particular photo.
This is the code from the .swift file.
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)
Despite the fact that the image properties print all the data, as expected, no matter what I did to extract the imageProperties from the dictionary - it always returns as zero - for example, the "aperture" in the example. ImageProperties prints as:
[{TIFF}: { Artist = JOHN; Copyright = " johnrwatson0@gmail.com "; 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..
I have done a lot of research and testing, and I just canβt understand what I am doing wrong to access the elements in this dictionary. Can someone give me an example of how to set a variable as a βModelβ element inside a dictionary?
Thanks for any help, John
source share