swift base64转UIImage,UIImage转base64
2016-05-17 18:41
1206 查看
///传入图片image回传对应的base64字符串,默认不带有data标识, func imageToBase64String(image:UIImage,headerSign:Bool = false)->String?{ ///根据图片得到对应的二进制编码 guard let imageData = UIImagePNGRepresentation(image) else { return nil } ///根据二进制编码得到对应的base64字符串 var base64String = imageData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue:0)) ///判断是否带有头部base64标识信息 if headerSign { ///根据格式拼接数据头 添加header信息,扩展名信息 base64String = "data:image/png;base64," + base64String } return base64String } ///传入图片image名称回传对应的base64字符串,默认不带有data标识, func imageToBase64String(imageName:String,headerSign:Bool = false)->String?{ ///根据名称获取图片 guard let image : UIImage = UIImage(named:imageName) else { return nil } return imageToBase64String(image,headerSign:headerSign) } ///传入base64的字符串,可以是没有经过修改的转换成的以data开头的,也可以是base64的内容字符串,然后转换成UIImage func base64StringToUIImage(base64String:String)->UIImage? { var str = base64String // 1、判断用户传过来的base64的字符串是否是以data开口的,如果是以data开头的,那么就获取字符串中的base代码,然后在转换,如果不是以data开头的,那么就直接转换 if str.hasPrefix("data:image") { guard let newBase64String = str.componentsSeparatedByString(",").last else { return nil } str = newBase64String } // 2、将处理好的base64String代码转换成NSData guard let imgNSData = NSData(base64EncodedString: str, options: NSDataBase64DecodingOptions()) else { return nil } // 3、将NSData的图片,转换成UIImage guard let codeImage = UIImage(data: imgNSData) else { return nil } return codeImage }
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android java 与 javascript互访(相互调用)的方法例子
- android上改变listView的选中颜色
- String.intern
- Apple Swift学习教程
- 介绍 Fedora 上的 Swift
- Prototype源码浅析 String部分(二)
- Ruby中的String对象学习笔记
- PostgreSQL ERROR: invalid escape string 解决办法
- C# Base 64 编码/解码实现代码
- 浅谈C++中的string 类型占几个字节
- 标准C++类string的Copy-On-Write技术
- C++实现string存取二进制数据的方法
- C#中string和StingBuilder内存中的区别实例分析
- 详解C++中实现继承string类的MyString类的步骤
- VC中BASE64编码和解码使用详解
- PHP STRING 陷阱原理说明
- c#中 String和string的区别介绍