IOS开发---菜鸟学习之路--(十六)-将Image转换为Base64

摘要:
我们直接在m文件的引用头文件部分和@interfaceAddPictureViewController()之间添加添加部分的代码,然后您可以使用图片传输到Base64#import“AddPictureViewController.h”#import #import #import˂MobileCo

我们直接在.m文件的引用头文件部分 和 @interface   AddPictureViewController ()

 之间  加入 增加部分的代码

然后就可以使用图片转Base64了

#import "AddPictureViewController.h"

#import <QuartzCore/QuartzCore.h>

#import <QuartzCore/CoreAnimation.h>

#import <MobileCoreServices/UTCoreTypes.h>

IOS开发---菜鸟学习之路--(十六)-将Image转换为Base64第1张IOS开发---菜鸟学习之路--(十六)-将Image转换为Base64第2张
  1 @interface NSData (MBBase64)
  2 
  3 + (id)dataWithBase64EncodedString:(NSString *)string;
  4 - (NSString *)base64Encoding;
  5 
  6 @end
  7 static const char encodingTable[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  8 
  9 @implementation NSData (MBBase64)
 10 
 11 + (id)dataWithBase64EncodedString:(NSString *)string {
 12     if (string == nil)
 13         [NSException raise:NSInvalidArgumentException format:@""];
 14     
 15     if ([string length] == 0)
 16         return [NSData data];
 17     
 18     static char *decodingTable = NULL;
 19     
 20     if (decodingTable == NULL) {
 21         decodingTable = malloc(256);
 22         if (decodingTable == NULL)
 23             return nil;
 24         memset(decodingTable, CHAR_MAX, 256);
 25         NSUInteger i;
 26         for (i = 0; i < 64; i++)
 27             decodingTable[(short)encodingTable[i]] = i;
 28     }
 29     
 30     const char *characters = [string cStringUsingEncoding:NSASCIIStringEncoding];
 31     if (characters == NULL)
 32         return nil;
 33     char *bytes = malloc((([string length] + 3) / 4) * 3);
 34     if (bytes == NULL)
 35         return nil;
 36     
 37     NSUInteger length = 0;
 38     NSUInteger i = 0;
 39     
 40     while (YES) {
 41         char buffer[4];
 42         short bufferLength;
 43         for (bufferLength = 0; bufferLength < 4; i++) {
 44             if (characters[i] == '

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CentOS 7下NFS Server作rootfs时的兼容性问题让页面随浏览器的窗口大小缩放而缩放下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

android spinner学习

   用法 1 :以资源方式,静态展示 Spinner 选项 1.     在资源文件 (strings.xml) 中,增加:          < string name = "spin_prompt" > 请选择城市 </ string >          < string-array name = "cities" &...

C# 文件操作 全收录 追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件....

本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件、指定文件夹下 面的所有内容copy到目标文件夹下面、指定文件夹下面的所有内容Detele、读取文本文件、获取文件列表、读取日志文件、写入日志文件、创建HTML 文件、CreateDirectory方法的使用C#追加文件Stream...

Scala入门系列(十一):模式匹配

引言 模式匹配是Scala中非常有特色,非常强大的一种功能。 类似于Java中的switch case语法,但是模式匹配的功能要比它强大得多,switch只能对值进行匹配,但是Scala的模式匹配除了可以对值进行匹配之外,还可以对类型进行匹配、对Array和List的元素情况进行匹配、对case class进行匹配甚至对有值或没值(Option)进行匹配...

C++篇实现MD5算法

1、头文件 #ifndef MD5_H  #define MD5_H  #include <string>  #include <fstream>  /* Type define */  typedef unsigned char byte;  typedef unsigned int uint32;  using std::st...

C#实现短链接生成服务

项目中有一处需求,需要把长网址缩为短网址,把结果通过短信、微信等渠道推送给客户。刚开始直接使用网上现成的开放服务,然后在某个周末突然手痒想自己动手实现一个别具特色的长网址(文本)缩短服务。 由于以前做过socket服务,对数据包的封装排列还有些印象,因此,短网址服务我第一反应是先设计数据的存储格式,我这里没有采用数据库,而是使用2个文件来实现: Url...

设计模式--观察者模式初探和java Observable模式

初步认识观察者模式  观察者模式又称为发布/订阅(Publish/Subscribe)模式,因此我们可以用报纸期刊的订阅来形象的说明:     报社方负责出版报纸.     你订阅了该报社的报纸,那么只要报社发布了新报纸,就会通知你,或发到你手上.     如果你不想再读报纸,可以取消订阅,这样,报社发布了新报纸就不会再通知你.   理解其实以上的概念,就...