iOS-byte64与图片之间的转换

3 篇文章 0 订阅

-------------OC---------------

base64String = @"data:image/png;base64,iVBORw0KGgoAy ... RK5CYII="

//去除掉首尾的空白字符和换行字符

base64String = [base64String stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];

 //进行空字符串的处理 

base64String = [base64String stringByReplacingOccurrencesOfString:@"\r" withString:@""];

//进行换行字符串的处理

base64String = [base64String stringByReplacingOccurrencesOfString:@"\n" withString:@""];

//去掉头部的前缀//data:image/jpeg;base64, (可根据实际数据情况而定,如果数据有固定的前缀,就执行下面的方法,如果没有就注销掉或删除掉)

// base64String = [base64String substringFromIndex:23];   //23 是根据前缀的具体字符长度而定的。*/

base64转图片

法1.未去除前缀data:image/png;base64转图片,形如:@"data:image/png;base64,iVBORw0KGgoAy ... RK5CYII="

NSURL *imgURL = [NSURL URLWithString:dataURIStr];

NSData *imgData = [NSData dataWithContentsOfURL:imgURL];

UIImage *img = [UIImage imageWithData:imgData];

法2.去除前缀data:image/png;base64转图片,去除后形如:@"iVBORw0KGgoAy ... RK5CYII="

NSData *imgData = [[NSData alloc] initWithBase64EncodedString:base64ImgStr options:0];

UIImage *img = [UIImage imageWithData:imgData];

图片转base64

UIImage * image = [UIImage imageNamed:@"pic"];
NSData * imageData = UIImageJPEGRepresentation(image, 1);
NSData * imageData = UIImagePNGRepresentation(image);
NSString * base64Str = [imageData base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

-------------swift---------------

图片转 base 64
 guard let image = UIImage(named: "图片名称") else {return}
//jpeg格式 compressionQuality: 压缩质量
 guard let imageData = image.jpegData(compressionQuality: 1) else {
  return
}
//png格式
guard let imageData2 = image.pngData() else {
return
}
let base64ImageStr = imageData.base64EncodedString(options: .lineLength64Characters)

base64转图片
let base64ImageStr = "Base64字符串"
 guard  let showImageData = Data(base64Encoded: base64ImageStr, options: .ignoreUnknownCharacters) else {return}
myImageView?.image = UIImage(data: showImageData )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值