ALAsset类代表相册中的每个资源文件,可以通过它获取照片的相关信息,及其对应的原图,全屏图,缩略图等。

当我们想通过一个照片的ALAsset对象,来获取这张照片的原图并将其转换成NSData数据,有如下两种方法:
方法一:将其转换成UIImage对象,再通过UIImageJPEGRepresentation或UIImagePNGRepresentation方法转成NSData
这种方法不推荐,因为这个其实对图片进行了压缩转换,不再是图片的原始数据(像如果是gif动态图会变成静态图片),同时照片原来附带的拍摄信息什么的也会丢失。
1
2
3
var representation =  myAsset.defaultRepresentation()
var image = UIImage(CGImage:representation.fullResolutionImage().takeUnretainedValue())
var data:NSData = UIImageJPEGRepresentation(image, 1.0)

方法二:直接复制图片的字节数据
推荐,这样得到的是实际的数据
1
2
3
4
5
var representation =  myAsset.defaultRepresentation()
var imageBuffer = UnsafeMutablePointer<UInt8>.alloc(Int(representation.size()))
var bufferSize = representation.getBytes(imageBuffer, fromOffset: Int64(0),
    length: Int(representation.size()), error: nil)
var data:NSData NSData(bytesNoCopy:imageBuffer ,length:bufferSize, freeWhenDone:true)

附:通过ALAsset获取缩略图
1
2
var image = UIImage(CGImage:myAsset.thumbnail().takeUnretainedValue())
var data:NSData = UIImageJPEGRepresentation(image, 1.0);

转载于:https://www.cnblogs.com/Free-Thinker/p/4843331.html

Swift - 从ALAsset中获取照片的原图并转换成NSData相关推荐

  1. mysql得到中文的拼音_在MySQL中获取中文的拼音或转换中文替拼音

    在MySQL中获取中文的拼音或转换中文为拼音 MySQL ------------------------------------- 分页:select * from xxx limit 0,10 ? ...

  2. excel表格中18位身份证号码如何转换成出生日期

    1.获取出生日期,如果Excel表上,如果A1为身份证号码. =IF(LEN(A1)=15,MID(A1,7,2)&"-"&MID(A1,9,2)&&quo ...

  3. 将JAVA bean/实体类 中为null的属性值转换成空字符串

    使bean中为null的属性转换成空字符串 获得getter方法 方法有分带参数和不带参数,我们知道getter方法是不带参数的 获得getter方法如下 Method m = model.getCl ...

  4. 从搜狗获取行业词库并转换成jieba可用的词库文件

    从搜狗获取行业词库并转换成jieba可用的词库文件 从搜狗获取行业词库 利用网站在线转换 利用Django建立网站 从搜狗获取行业词库 搜狗官方的词库地址 下载下来后是.scel扩展名的文件 利用网站 ...

  5. excel函数公式html文档,Excel中把计算式转换为运算结果的方法 EXCEL中计算出的公式如何转换成纯文本内容?...

    如何在EXCEL中将计算公式直接变结果如我在A1输入计算式:(1+2*3+4/5-6)*1.2+(1+5) 如何在B1得出该计算式的选中B1然后按快捷键ctrl+F3,进入名称管理器,新建,输入任意名 ...

  6. ch不是小写英文字母的c语言代码,函数fun的功能是进行字母转换。若形参ch中是小写英文字母,则转换成对应的大写英文字母;若ch中是大写英文字母,则...

    题目 题型:选答,填空 难度:★ 函数fun的功能是进行字母转换.若形参ch中是小写英文字母,则转换成对应的大写英文字母:若ch中是大写英文字母,则 函数fun的功能是进行字母转换.若形参ch中是小写 ...

  7. ORACLE 中为什么要把列名都转换成大写字母?

    以前在使用 JAVA 开发应用程序的时候,都是使用 ORACLE 数据库,在 JAVA 中对 ORACLE 数据表进行查询返回数据后,保存在一个 Vector 列表中,每一个元素表示一行,每一行又使用 ...

  8. java中时间入数据库格式转换_数据库中字段类型为datetime,转换成java中的Date类型...

    数据类型对照 点击打开链接 JDBC: PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuer ...

  9. netbeans html 格式化,在NetBeans IDE8.0中怎么把html的文件转换成jsp格式

    满意答案 在NetBeans IDE8.0中把html的文件转换成jsp格式的方法: 将html页改成jsp有两种方法,第一种是直接修改html文件,另一种是新建jsp文件. 1.原始html文件内容 ...

最新文章

  1. C语言语句单选题,C语言练习题
  2. 2008 R2 AD通过组策略针对用户进行限制QQ等软件的运行
  3. Linux安装Oracle 10g
  4. 4.Android的学习(了解代码与部分配置)
  5. RequestMethod的参数的含义是?
  6. hive实现not in
  7. OSSIM中主动与被动探测工具(arpwatch+p0f+pads)组合应用
  8. CocosCreator简单小鸟穿越隧道小游戏
  9. 图像处理_OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)
  10. Unity 粒子特效
  11. 面试智力题:赛马问题求前几名
  12. shell 获取当前时间
  13. ram与flash你知道多少?
  14. php汉字转拼音百家姓版,百家姓详(带拼音).ppt
  15. 电子邮件注册网站哪个好:四大邮箱客户端的对比
  16. 【安路FPGA】FPGA开发日记(一)
  17. MySQL数据库创建表报错的解决方案
  18. Hadoop启停服务命令大全
  19. 遇到的那些奇奇怪怪的文件格式(持续更新。。。)
  20. 孤独真的能毁掉一个人吗?你孤独吗?

热门文章

  1. 原来这样调优可以攻破MySQL性能瓶颈!
  2. html页面获取元素,JavaScript中获取HTML元素值的三种方法
  3. Error occurred during initialization of VM Java虚拟机初始化失败
  4. @Service层代码的格式
  5. NOVA温控器参数笔记(三)
  6. 发力新零售,瓜子二手车严选直卖店落地武汉
  7. Android Trick 3: GridView动态加载数据情况下,选中状态的实现
  8. Twitter 高级搜索技巧
  9. 《做最好的员工》第二章:好员工擅长合作
  10. 敢问路在何方。。。。