首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从使用UIImagePickerController post iOS 11.0拾取的图像中读取EXIF数据

UIImagePickerController是iOS开发中用于选择照片或拍摄照片的控件。在iOS 11.0之后,可以使用UIImagePickerController来选择照片并读取其EXIF数据。

EXIF(Exchangeable Image File Format)是一种用于存储照片元数据的标准格式。它包含了照片的拍摄信息,如拍摄时间、相机型号、焦距、曝光时间等。

要从使用UIImagePickerController选择的图像中读取EXIF数据,可以按照以下步骤进行:

  1. 首先,确保在使用UIImagePickerController时设置了代理。可以通过设置UIImagePickerController的delegate属性来实现代理。
  2. 当用户选择了照片后,UIImagePickerController的代理方法imagePickerController:didFinishPickingMediaWithInfo:会被调用。在该方法中,可以通过访问info字典来获取选择的照片信息。
  3. 从info字典中,可以通过键值对的方式获取照片的原始数据和元数据。对于EXIF数据,可以使用键值UIImagePickerControllerMediaMetadata来获取。
  4. 获取到照片的元数据后,可以使用相关的库或方法来解析EXIF数据。在iOS开发中,可以使用ImageIO框架中的CGImageSourceCopyPropertiesAtIndex方法来获取照片的EXIF数据。

以下是一个示例代码,展示了如何从使用UIImagePickerController选择的图像中读取EXIF数据:

代码语言:txt
复制
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    // 获取选择的照片
    guard let image = info[.originalImage] as? UIImage else {
        return
    }
    
    // 获取照片的元数据
    guard let metadata = info[.mediaMetadata] as? NSDictionary else {
        return
    }
    
    // 解析EXIF数据
    if let exifData = metadata[kCGImagePropertyExifDictionary as String] as? NSDictionary {
        // 在这里可以对EXIF数据进行处理
        // 例如,获取拍摄时间、相机型号等信息
        let dateTimeOriginal = exifData[kCGImagePropertyExifDateTimeOriginal as String] as? String
        let cameraModel = exifData[kCGImagePropertyExifModel as String] as? String
        
        // ...
    }
    
    // 其他操作
    // ...
}

在云计算领域中,可以将上述功能应用于图像处理、图像识别、相册管理等场景。腾讯云提供了丰富的云计算产品,例如腾讯云对象存储(COS)用于存储和管理图像数据,腾讯云人工智能(AI)服务用于图像识别和处理等。具体产品介绍和链接地址可以参考腾讯云官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS摄像头和相册-UIImagePickerController

本文参考自:http://blog.sina.com.cn/s/blog_7b9d64af0101cfd9.html 在原文基础上,增加了存储图片到app和app存储读取图片。...---- 引 在一些应用,我们需要用到iOS设备摄像头进行拍照,视频。并且相册中选取我们需要图片或者视频。...关于iOS摄像头和相册应用,可以使用UIImagePickerController类来完成控制。 iOS一些设备上都安装了摄像头。现在绝大多数都有了。...*)picker{ [picker dismissModalViewControllerAnimated:YES]; } 四、相册获取图片和视频数据 1、我们将功能封装在一个按钮点击事件...*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 方法info值,会根据我们操作类型不同,而产生了不同数据信息。

62810

iOS开发——头像设置及本地沙盒保存,圆形头像显示

今天来讲一讲iOS实际开发,对于头像应用。 现在APP,对于头像设置,我们大多采用圆形头像,并且需要支持照相机获取或者相册中选择用户需要头像,并且保存在本地或者服务器。...* */ -(UIImage *)imageForKey:(NSString *)key; @end 我们在类 使用了 sharedHeadsPicture 这个单例方法,也定义了一个读取头像图片...NSString *path = [self imagePathForKey:key]; //图片提取JPEG格式数据,第二个参数为图片压缩参数 NSData *data...最后来写 设置头像 按钮背后选择照片逻辑代码。 因为是 照相机 或者 相册 读取照片,需要使用 UIImagePickerController"图像选择器" 。...UIImagePickerController 是一种导航控制器,使用它,用户可以打开系统图片选取器或者打开相机进行拍照。

1.7K30

如何快速定位、分析、解决非CrashBUG(iOS 11篇)

iOS 11图像放大闪烁问题 功能背景: 用户点击圆形头像后,头像会放大到等同屏幕宽度,并且圆形展示变成正方形展示。...异常帧2 上面的展示效果类似OpenGL纹理展示GL_CLAMP_TO_EDGE模式,怀疑是图像放大过程边界处理有异常。 带着疑问回看代码。...Bug定位: 通过模拟器复现,发现iOS 10模拟器正常,iOS 11模拟器存在此问题。 在后台数据返回接口处断点,确定数据返回是否正常,发现iOS 11模拟器根本没有返回数据。...小结: 正向和逆向链式分析方式是最常见Bug定位方法; 对于实在无法定位时,再使用二分注释方法。...无需对Bug产生厌恶和恐惧,但也不要沉浸在单步调试和盲目尝试快感。充分利用宝贵时间,减少无用步骤,觉察自己解决Bug过程不足,尽量解决问题中习得新知识和方法。

2.3K50

初探 Core ML:学习建立一个图像识别 App

注: 接下来教学会使用 Xcode 9 作为开发工具,同时需要有 iOS 11 设备以便测试其中功能。Xcode 9 支持 Swift 3.2 及 4.0,我们使用 Swift 4.0 开发。...这个 App 能够让使用者拍照或是相簿中选择一张相片,然后机器学习演算法将会试着辨识出相片中物品是什么。虽然可能无法每次都识别成功,但你可以藉此思考出如何在你 App 里使用 Core ML。... iOS 10 开始,你需要添注说明为何你 App 需要使用相机及相簿功能。 ? coreml-plist-privacy 好了,现在你已经准备好前往本篇教学核心部分了。...7-11 行: 我们 info 这个 Dictionary (使用 UIImagePickerControllerOriginalImage 这个 key)里取回了选取图像。...是时候来测试我们 App 萝!在模拟器或上手机上(需安装 iOS 11)Build 及 Run ,接着相簿选取或相机拍摄图像,App 就会告诉你图像是什么。 ?

2.7K70

手把手教你实现一个图片压缩工具(Vue与Node完美配合)

看到上面的压缩后图片,可能你还会质疑图片清晰度,那么看下面(第一张图为压缩后图片): 教程 这么好工具,那我们来看看怎么用代码实现它。...= ''">确定 import EXIF from "exif-js"; export default {...知道这些还不够,你还要知道怎么依赖库下载依赖,这里需要另外下载依赖是exif-js。 一个JavaScript库,用于图像文件读取EXIF数据。...您可以通过图像或文件输入元素在浏览器图像使用它。EXIF和IPTC元数据均被检索。该软件包还可以在AMD或CommonJS环境中使用。...备注;使用exif.js依赖作用是 为了防止在IOS系统拍照上传图片旋转90度问题。

73730

scalajava等其他语言CSV文件读取数据使用逗号,分割可能会出现问题

众所周知,csv文件默认以逗号“,”分割数据,那么在scala命令行里查询数据: ?...可以看见,字段里就包含了逗号“,”,那接下来切割时候,这本应该作为一个整体字段会以逗号“,”为界限进行切割为多个字段。 现在来看看这里_c0字段一共有多少行记录。 ?...记住这个数字:60351行 写scala代码读取csv文件并以逗号为分隔符来分割字段 val lineRDD = sc.textFile("xxxx/xxx.csv").map(_.split(",")...) 这里只读取了_c0一个字段,否则会报数组下标越界异常,至于为什么请往下看。...自然就会报数组下标越界异常了 那就把切割规则改一下,只对引号外面的逗号进行分割,对引号内不分割 就是修改split()方法里参数为: split(",(?

6.4K30

iOS使用UIImagePickerController调用系统相机、相册与图库

iOS使用UIImagePickerController调用系统相机、相册与图库 一、引言         UIImagePickerController是系统封装好一个导航视图控制器,使用其开发者可以十分方便进行相机相册相关功能调用...二、UIImagePickerController属性与方法应用         在使用UIImagePickerController之前,应该先判断设备做支持媒体文件获取类型,使用如下方法进行判断...,可以使用如下方法: NSString * str = (__bridge NSString*)kUTTypeMovie; UIImagePickerController更多属性与方法解析如下: //..._0, 3_0); //相机录像或者图库相册选择视频完成后触发回调方法 info字典是具体信息 - (void)imagePickerController:(UIImagePickerController...- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker; 上面方法编辑字典与信息字典,约定好了一些键值对

2.2K10

iOS 开发实践:iOS照片API那些坑

2.不推荐自己写选图控件 对于选图没有太高要求app,建议使用系统选图控件UIImagePickerController,这样开发快捷便利,但是在我看来最大优点在于这样做未来维护成本会很小,尤其是可以在未来几乎第一时间享受到系统选图控件新功能和新特性...在iOS 10,如果用UIImagePickerController的话,还需要规避一个系统API会crash坑。...iOS 8开启了Photos.framework新时代,而iOS 7及以下开发者只能使用AssetsLibraryAPI。...所以,推荐直接iOS 9开始支持,如果不行的话,推荐至少iOS 8.1开始支持(当然更合理8.4开始支持,这样升级不到iOS 9手机也有机会使用上)。...加入我们: 天天P图技术团队长期招聘: (1) 图像处理算法工程师 (2) Android / iOS 开发工程师 期待对我们感兴趣或者有推荐技术牛人加入我们(base 上海)!

2.7K40

Next -24- 添加相册系列 -4- 将本地相册信息部署到hexo

准备工作 Next -21- 添加相册系列 - 1- 框架设置 Next -22- 添加相册系列 -2- 使用七牛云qshell同步图像目录 Next -23- 添加相册系列 -3- 获取图像信息、保存为...json文件并上传图像 上线思路 现在我们已经有了基础photos框架,图像文件夹已经整理完毕,提取了信息放在了json文件,并且将图像上传到了七牛云图床,在hexo source文件夹内创建了相册对应...在next主题中存在为二级文件夹配置内容文件,修改该文件,在具有二级文件夹结构index.html中加入特定类 建立js文件向类添加内容 内容为读取json文件得到相册信息,这样便建立起了逐个页面的相册...同理在photos中加入特定类 建立js文件读取相册json文件并建立链接目录,即完成了整个相册基础框架 之后优化、美化便水到渠成了 建立相册 向二级目录index.html加入类 在 Hexo.../themes/next/layout/_partials/page文件夹 修改page-header.swig文件,加入类别为album_image_griddiv,并引用js文件,此时对应二级文件夹内

53020

JPEGExifTIFF格式解读(2):图片元数据保存及EXIF详解

主要是由人工在后期通过软件写入数据。XMP:XMP实际上是一种元数据存储和管理标准,可以将Exif,IPTC或其他数据都按XMP统一格式存放在图像文件。...为了解决这个问题,Adobe公司推出用XMP管理元数据方法,即将图像数据Exif,IPTC等都纳入XMP库,由XMP管理。...只是在文件头信息增加了有关拍摄信息内容和索引图。所以你可以使用任何支持JPEG格式图像工具软件观看或修改Exif文件,但打开时可能看不到Exif信息,一旦修改,Exif信息可能丢失。..."应用标记", 它们在JPEG图像解码不是必须存在....JFIF 使用 APP0(0xFFE0) 标记来插入数字相机配置信息数据和缩略图.Exif使用应用标记来插入数据, 但是Exif 使用 APP1(0xFFE1)标记来避免与JFIF格式 冲突.

6.4K30

iOS,系统相册那些事

获取相册最直接方式——UIImagePickerController 功能介绍:可直接显示分组相处列表,用户选择不同相册照片后,可在委托方法获得该图片对象; API提供三种数据源: UIImagePickerControllerSourceTypeCamera...,可支持多选、自定义界面,只不过API在iOS9.0版本被标记废弃,即iOS9.0之前版本可以使用ALAssetsLibrary实现自定义,iOS9.0之后版本需要使用Photos.fraework...自定义相册方式之二Photos.framework 基本介绍:Photos是苹果在iOS8.0提出API,是目前,苹果推荐照片框架,学习一下还是很有必要; 主要成员介绍: 1.PHAsset:代表照片库一个资源...,也可以是一个【智能相册】(系统提供一系列相册集合,包括最近删除、相机相册、最爱相册等等)一个; 4.PHFetchResult:表示一系列资源结果集合,也可以是相册资源集合,一般情况下,可以...,多使用PHFetchResult获取对应资源,不采用枚举方式获取资源,在效率上会有所提高; 以上内容均来自工作学习心得,有不足地方欢迎大家前来讨论,共同提高。

1.3K40

iOS,系统相册那些事

获取相册最直接方式——UIImagePickerController 功能介绍:可直接显示分组相处列表,用户选择不同相册照片后,可在委托方法获得该图片对象; API提供三种数据源: UIImagePickerControllerSourceTypeCamera...,可支持多选、自定义界面,只不过API在iOS9.0版本被标记废弃,即iOS9.0之前版本可以使用ALAssetsLibrary实现自定义,iOS9.0之后版本需要使用Photos.fraework...,一般情况下,可以PHCollection或PHAsset类方法获取; 5.PHImageManager:用于处理资源加载,图片加载过程带有缓存处理; 6.PHImageRequestOptions...适用iOS版本不同,ALAssetsibrary适用于iOS9.0之前,Photos适用于iOS9.0之后; 获取资源方式不同:ALAssetsibrary都是以枚举方式获取资源,遍历照片库...,多使用PHFetchResult获取对应资源,不采用枚举方式获取资源,在效率上会有所提高; 以上内容均来自工作学习心得,有不足地方欢迎大家前来讨论,共同提高。

1.1K20

多媒体-图片、音频、视频基本实现

前言 iOS开发关于多媒体是经常使用,下面就简单总结下基本实现方式。当然首先需要获得系统私有设置访问权限。...(info.plist添加) ---- 选取系统图片 选择相册图片 UIImagePickerController *imagePickerController = [[UIImagePickerController...和 MAC 关于数字音频处理基础,它提供应用程序用来处理音频一组软件框架,所有关于IOS音频开发接口都是由Core Audio来提供或者经过它提供接口来进行封装,按照官方说法是集播放,音频处理录制为一体专业技术...Core Audio.framework并不提供服务,仅提供其他框架可以使用头文件和数据类型。...setCategory:error:实例方法,来IOS应用可用不同类别作出选择。

2K10

iOS MachineLearning 系列(2)—— 静态图像分析之矩形识别

iOS MachineLearning 系列(2)—— 静态图像分析之矩形识别 本系列文章将完整介绍iOSMachine Learning相关技术应用。...本篇文章开始,我们将先介绍一些与Machine Learning相关API应用。使用这些API可以快速方便实现很多如图像识别,分析等复杂功能,且不会增加应用安装包体积。...1 - 矩形分析示例 与视觉相关大部分AI能力都封装在Vision框架,本文要介绍是通过发起矩形分析请求来分析图片,得到分析结果后将分析出来矩形区域绘制回原图像上。...{ get } } VNRectangleObservation类则封装了与矩形相关属性数据: @available(iOS 11.0, *) open class VNRectangleObservation...图片方向。 额外参数。 其中,图片数据源可以二进制数据加载,可以网络加载,可以CoreImage或CoreGraphics框架图片对象加载等等,这里不多赘述。

59310

JPEGExifTIFF格式解读(4):win10照片旋转win7不识别。

Exif数据根据不同内容分布在五个不同IFD。IFD0数据是由TIFF定义基本图像数据,其中有些与照片无关,所以Exif只实现其中一小部分。...这部份数据在Photoshop称为TIFF元数据Exif subIFD数据是由Exif定义数据,都是和相机照片有关数据,是Exif主要数据,其中有一些与IFD0重复。...GPS subIFD 数据是记录照片拍摄位置,对于没有GPS功能相机,这里数据都是空。IFD1数据是缩略图图像及该图像数据。...Maskernote IFD是制造商自己定义数据,没有标准,有些商家数据也不对外公开。一般谈论Exif数据都是指Exif subIFD 和IFD0 数据。...Windows 下用缩略图视图查看图像会按照【第一步读取当前文件夹下Thumbs.db – 如果没有Thumbs.db文件则读取图像exif缩略图信息 – 如果图像文件没有exif缩略图信息则生成缩略图信息并保存至

1.3K10

为什么我 CV 模型不好用?没想到原因竟如此简单……

因为数码相机图像传感器是逐行读取,最终汇集成连续像素信息流。这能让相机更轻松地保存像素数据,因为不管相机姿势如何,像素数据总是以同样顺序保存。 ?...图像查看器应当使用这种信息来正确地显示图像图像数据最常见格式是 Exif(Exchangeable image file forma「可交换图像文件格式」缩写)。...Exif 格式数据放在相机保存 jpeg 文件。你不能直接图像本身读到这种 Exif 数据,但可以使用任何知道如何读取这一数据程序进行读取。...下面是使用 Exiftool 读取上面的鹅照片 Exif数据: ? 注意 Orientation(方向)这个数据元素。它能指示图像查看器程序,在屏幕上显示图像之前将图顺时针旋转 90 度。...Mac 上 Finder 总是显示应用了 Exif 旋转后图像,这样就没法看到文件图像数据实际上是侧向

1.1K30

啄幕鸟:iOS开发提效好帮手

1)分享面板封装了系统分享功能,方便各个工具导出信息,啄幕鸟文本、图片皆支持分享面板导出; 2)图文预览用以全屏查看文本、图片; 3)屏幕折线图方便插件直观显示数据,啄幕鸟中性能插件使用了屏幕折线图显示性能数据...作为测量标尺,作为控件拾取补充,对于某些不能通过控件拾取查看大小间距,如行间距等,可以使用测距条测量。...image.png 控件拾取、测距条截图 In-APP-Debug 工具 iOS 开发主要使用 LLDB 断点、指令等进行 Debug,依赖电脑联调,In-APP-Debug 即不依赖电脑,使用 APP...双击控件拾取信息区即可打开对象查看,对象查看会显示拾取对象属性、成员变量列表,点击对象即可查看它属性,层层查找即可查看到每一个相关对象,并可以通过命令读取对象 key-path-value、执行...作者:iOS一叶 链接:https://juejin.im/post/6881490368396230670

1K30

JPEGExifTIFF格式解读(1):JEPG图片压缩与存储原理分析

由于进行数据量化后,矩阵数据都是近似值,和原始图像数据之间有了差异,这一差异是造成图像压缩后失真的主要原因。 在这一过程,质量因子选取至为重要。...Exif使用应用标记来插入数据, 但是Exif 使用 APP1(0xFFE1)标记来避免与JFIF格式 冲突....该图像文件SOI(0xFFD8) 标记开始, 因此它是一个 JPEG 文件. 后面马上跟着 APP1 标记. 而它所有 Exif数据都被存储在 APP1 数据域中....后面跟着就是数据。前面的元数据读取完成后,后面的二进制数据就是图片数据。...关于exif信息解码,请阅读《JPEG/Exif/TIFF格式解读(2):图片元数据保存及EXIF详解》 jpeg10必须段类型 这里列举10种必备段类型 APP0图像识别信息 --------

2.9K11

NSURLSession 所有的都在这里(一)

,忽略其过期时间;只有在没有缓存版本时候才源端加载数据 NSURLRequestReturnCacheDataElseLoad = 2, 只使用cache数据...指定如果已存缓存数据被提供它源段确认为有效则允许使用缓存数据响应请求,否则从源段加载数据。...关于该字段更多解释将在后面的HTTP版本简介展开。       Content-Length: body长度,如果body为空则该字段值为0。该字段一般在POST请求才会有。      ...: NSURLSessionTask 异步地读取若干个字节,并在完成时调用处理程序。...读取minBytes或最多maxBytes字节,并在会话委托队列调用数据或错误完成处理程序。如果发生错误,任何未完成读取也将失败,并且新读取请求将立即出错。

2.1K30

玩转前端图片上传

虽然他们目前均处在 w3c 规范 Working Draft 阶段, 但是大多数现代浏览器都已经良好支持了。下面就介绍一下如何使用这两个方法。 1....使用 FileReader 预览 FileReader 对象允许Web应用程序异步读取存储在用户计算机上文件(或原始数据缓冲区)内容,使用 File 或 Blob 对象指定要读取文件或数据。...同理,我们也可以通过 input.files[0] 获取到当前选中图片 File 对象。 特别注意,FileReader 和 是异步读取文件或数据!...这里也提到了,但只支持读取 jpg 图片 EXIF 信息,而我们这张图片是 PNG 所以并不支持。...有个 CSS 属性叫做 image-orientation , 它有个值叫做 from-image , 就是使用图片 EXIF 数据来旋转。可惜,目前 chrome 不支持该属性。

3K21
领券