iOS Swift。如何从UIImage(NSURL)获取GPS元数据?

编程入门 行业动态 更新时间:2024-10-05 11:23:18
本文介绍了iOS Swift。如何从UIImage(NSURL)获取GPS元数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

引用仅具有NSURL的图像。 如何从中获取GPS元数据? 当然,我可以从NSURL加载UIImage,但接下来是什么?

我在这里找到的大部分答案都是关于UIImagePicker,然后使用ALAssets ,但我没有这样的选择。 解决方案

回答我自己的问题。获取GPS元数据的内存有效和快速的方式是

let options = [kCGImageSourceShouldCache as String:kCFBooleanFalse] 如果让data = NSData(contentsOfURL:url),imgSrc = CGImageSourceCreateWithData(data,options){ let metadata = CGImageSourceCopyPropertiesAtIndex(imgSrc,0,options)as Dictionary let gpsData = metadata [kCGImagePropertyGPSDictionary] as ? [字符串:AnyObject] }

第二个选项是

if let img = CIImage(contentsOfURL:url),metadata = img.properties(), gpsData = metadata [kCGImagePropertyGPSDictionary] as? [String:AnyObject] {...}

它在Swift中看起来更好,但使用更多内存(通过Profiler )。

Have a reference to an image only having its NSURL. How to get a GPS metadata from it? Of course, I can load a UIImage from NSURL, but then what?

Majority of answers I've found here is regarding UIImagePicker, and using ALAssets then, but I have no such option.

解决方案

Answering my own question. The memory-effective and fast way to get a GPS metadata is

let options = [kCGImageSourceShouldCache as String: kCFBooleanFalse] if let data = NSData(contentsOfURL: url), imgSrc = CGImageSourceCreateWithData(data, options) { let metadata = CGImageSourceCopyPropertiesAtIndex(imgSrc, 0, options) as Dictionary let gpsData = metadata[kCGImagePropertyGPSDictionary] as? [String : AnyObject] }

The second option is

if let img = CIImage(contentsOfURL: url), metadata = img.properties(), gpsData = metadata[kCGImagePropertyGPSDictionary] as? [String : AnyObject] { … }

it looks nicer in Swift but uses more memory (tested via Profiler).

更多推荐

iOS Swift。如何从UIImage(NSURL)获取GPS元数据?

本文发布于:2023-11-26 23:14:12,感谢您对本站的认可!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数据   Swift   iOS   UIImage   GPS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!