关于图片以及格式UTI
Uniform Type Identifiers
定义:http://www.escape.gr/manuals/qdrop/UTI.html
使用UTI获取图片格式:
ALAssetRepresentation *assetRep = [asset defaultRepresentation]; NSString *mediaType = [assetRep UTI];
最近做了一个模块,需要获取到ios 图片的详细属性:包括创建时间,文件格式等等。由于AALsset中,包含的内容不详细,只好自己去获取。查询到需要使用ImageIO接口
首先要导入 AssetsLibrary.framework
and ImageIO.framework
.
代码部分:
#import <ImageIO/ImageIO.h> - (NSString *)infoFromImageIO:(ALAssetRepresentation *)assetRep {NSMutableData *imgData = nil;NSString *mediaType = [assetRep UTI];// create a buffer to hold image datauint8_t *buffer = (Byte*)malloc(assetRep.size);NSUInteger length = [assetRep getBytes:buffer fromOffset:0.0 length:assetRep.size error:nil];if (length > 0){imgData = [[NSMutableData alloc] initWithBytesNoCopy:buffer length:length freeWhenDone:YES];}// identify image type (jpeg, png, RAW file, ...) using UTI hintNSDictionary* sourceOptionsDict = [NSDictionary dictionaryWithObjectsAndKeys:(id)[assetRep UTI] ,kCGImageSourceTypeIdentifierHint,nil];// create CGImageSource with NSDataCGImageSourceRef sourceRef = CGImageSourceCreateWithData((CFDataRef)imgData, ( CFDictionaryRef) sourceOptionsDict);// get imagePropertiesDictionary CFDictionaryRef imagePropertiesDictionary;imagePropertiesDictionary = CGImageSourceCopyPropertiesAtIndex(sourceRef,0, NULL);// get exif dataCFDictionaryRef exif = (CFDictionaryRef)CFDictionaryGetValue(imagePropertiesDictionary, kCGImagePropertyExifDictionary);NSDictionary *exif_dict = (NSDictionary*)exif;if (exif_dict && [exif_dict count] > 0){//获取创建时间NSString *createTime = [NSString stringWithString:[exif_dict objectForKey:@"DateTimeOriginal"]];CFRelease(imagePropertiesDictionary);CFRelease(sourceRef);return createTime;}return nil; #if 0// save image WITH meta dataNSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];NSURL *fileURL = nil;CGImageRef imageRef = CGImageSourceCreateImageAtIndex(sourceRef, 0, imagePropertiesDictionary);if (![[sourceOptionsDict objectForKey:@"kCGImageSourceTypeIdentifierHint"] isEqualToString:@"public.tiff"]){fileURL = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/%@.%@",documentsDirectory,@"myimage",[[[sourceOptionsDict objectForKey:@"kCGImageSourceTypeIdentifierHint"] componentsSeparatedByString:@"."] objectAtIndex:1]]];CGImageDestinationRef dr = CGImageDestinationCreateWithURL ((__bridge CFURLRef)fileURL,(__bridge CFStringRef)[sourceOptionsDict objectForKey:@"kCGImageSourceTypeIdentifierHint"],1,NULL);CGImageDestinationAddImage(dr, imageRef, imagePropertiesDictionary);CGImageDestinationFinalize(dr);CFRelease(dr);}else{NSLog(@"no valid kCGImageSourceTypeIdentifierHint found …");}// clean up CFRelease(imageRef);CFRelease(imagePropertiesDictionary);CFRelease(sourceRef); #endif }
因为我这个接口只需要获取时间,故屏蔽了一部分代码,使用屏蔽部分的内容可以将相册中的图片保存到我们自己应用的沙盒中。
转载于:https://www.cnblogs.com/Peterahan/p/3261617.html
关于图片以及格式UTI相关推荐
- pdf转图片 java_有将pdf文件转图片的格式方法吗?
有时候我们为了方便传输,需要把图片转为PDF的格式,因为它所占的空间相对要小.但是因为pdf文件的安全性很好所以不能进行编辑,那我们又要进行编辑图片的时候,就又会把PDF文件格式转换成图片来进行编辑. ...
- 怎样更改图片格式?怎么转图片的格式?
因为各种网络平台对上传的图片格式有要求,所以我们在使用图片的时候就会受到限制,所以需要按照平台的要求,上传对应的图片格式,那么怎样才能将图片转换到所需要的格式呢?这个时候我们就可以使用图片格式转换器( ...
- 如何将pdf转换成jpg图片的格式
PDF文件是以PostScript语言图象模型为基础,因pdf包含的格式比较多,很多时候需要把PDF转换为JPG来适应各种不同的场合,但是如何将pdf转换成jpg成了让大家头疼的问题.下面小编就将pd ...
- webp怎么转png?图片webp格式怎么转换?
webp是一种动态格式的图片,那么怎么把它改变成其他格式呢?使用专业的工具来处理是最方便的方法了,如何使用webp在线转换工具把webp转png(在线图片格式转换器(jpg.png.gif.webp. ...
- WEB应用图片的格式,以及各自的特点和优化(一) by FungLeo
WEB应用图片的格式,以及各自的特点和优化(一) by FungLeo 前言 12年前我入行三天.用table布局做了一个非常粗糙的网页.我说了一句话,"网页就是表格加文字加图片,图片分两种 ...
- 图片转换格式的具体操作步骤
在工作中,作为运营人员每天都会使用到大量的图片,当我们把这些图片上传到网上时,由于网上的格式限制,导致我们手里的一些图片无法上传.这时我们就需要转换图片,一般这种情况下会用软件进行格式转换,非常方便简 ...
- 怎么在线给图片转换格式?分享一款图片转格式神器
如何在线转换图片格式?通过使用图片转格式(https://www.yasuotu.com/geshi)工具-压缩图,就可以快速完成图片格式在线更改的操作,简单方便,高效便捷,具体操作步骤如下: 打开压 ...
- 用python实现批量图片的格式转换
最近在处理数据集的时候参考了别人的代码,用python对图片的格式进行了转换,代码如下: import os from PIL import Image oldpath ='D:\BaiduNetdi ...
- 【举例说明】 利用cmd代码将图片png格式转为图片eps格式
摘要:写论文有时候需要将图片png格式转为eps格式,用Ps转化eps格式后,Latex生成pdf论文里图片会很不清晰,网上有cmd代码教程,但由于自己是电脑小白,不知如何在cmd中打开在桌面的图片文 ...
最新文章
- asp.net采用OLEDB方式导入Excel数据时提示:未在本地计算机上注册Microsoft.Jet.OLEDB.4.0 提供程序...
- 深度学习核心技术精讲100篇(八十)-脏数据如何处理?置信学习解决方案
- 目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN
- python利用列表计算斐波那契数列前30项_python斐波那契数列的计算方法
- 在保护继承中基类的共有成员_C++学习大纲:继承方式的调整
- python统计分析--2.预分析:异常值、缺失值处理
- 字符串比较strcmp
- jni java与c++交互返回三维数组jobjectArray
- 9.1.4 前端 - HTML body标签 - 标题,段落,分割线,换行,特殊符号,列表,超链接,图片,div/span,表格,表单,input标签,多行文本,单选/多选,下拉,按钮...
- textbox 下拉模糊查询ajax,Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中...
- 根据歌曲(mp3/wav)的旋律生成它的简谱(粗略大致)
- h5是可以一键打包小程序的_Vue项目快速输出到小程序H5-如何将h5打包成小程序-h5小程序怎么做...
- 计算机pc610台湾研华,IPC610-研华610工控机配置
- Chromium下载各类版本(pyppeteer爬虫下载地址)
- Driving E-ink display
- java profiler 工具_(转)Java应用性能分析工具:async-profiler
- 怎么用计算机打出错误,电脑连接打印机怎么一直显示错误怎么办
- Excel转PDF基于Microsoft.Office.Interop.Excel
- Python基础知识-pycharm版-对象
- 基于单片机交通灯控制的c语言程序设计,基于单片机控制的交通灯毕业设计
热门文章
- MarkDown常用使用技巧---字体颜色、大小、背景色、表格、图片大小修改---CSDN篇
- 【零基础跑项目】20代码教你基于opencv的人脸检测
- HTML计算平均成绩,access计算平均值取整
- 浅谈如何做好督查督办工作?
- 利用js实现手机访问PC端直接跳转wap端
- python软件如何下载-Python怎么下载安装
- 多模态预训练模型综述
- [VN2020 公开赛]simpleHeap-记录一次gef调试过程
- Linux 自签名ssl证书生成
- 红色警戒2+尤里的复仇,带完整音乐+影片,免安装版本,完美兼容WIN10