Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >iOS小技能:base64字符串和图片的互转

iOS小技能:base64字符串和图片的互转

作者头像
公众号iOS逆向
发布于 2022-08-22 03:22:53
发布于 2022-08-22 03:22:53
3K00
代码可运行
举报
文章被收录于专栏:iOS逆向与安全iOS逆向与安全
运行总次数:0
代码可运行

前言

背景: initQRCodeForInputByteSize cannot find proper rs block info (input data too big?)

之前的同事 误认为二维码是app侧自己生成,直接将base64字符串作为二维码的内容去生成,一张二维码容不下这么长的内容。就生成失败了。其实只要直接将base64字符串转图片。

案例:iOS富文本编辑器(基于WKWebview实现,Editor使用WKWebview加载一个本地editor.html文件) https://download.csdn.net/download/u011018979/85675638

base64字符串和图片进行互转

1.1 将base64字符串转为图片

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 将base64字符串转为图片
 
 */
+ (UIImage *)stringToImage:(NSString *)str {

NSData * imageData =[[NSData alloc] initWithBase64EncodedString:str options:NSDataBase64DecodingIgnoreUnknownCharacters];

UIImage *photo = [UIImage imageWithData:imageData ];

return photo;

}

  • 生成一张普通的二维码
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
+ (UIImage *)generateWithDefaultQRCodeData:(NSString *)data imageViewWidth:(CGFloat)imageViewWidth {
    // 1、创建滤镜对象
    CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
    
    // 恢复滤镜的默认属性
    [filter setDefaults];
    
    // 2、设置数据
    NSString *info = data;
    // 将字符串转换成
    NSData *infoData = [info dataUsingEncoding:NSUTF8StringEncoding];
    
    // 通过KVC设置滤镜inputMessage数据
    [filter setValue:infoData forKeyPath:@"inputMessage"];
    
    // 3、获得滤镜输出的图像
    CIImage *outputImage = [filter outputImage];
    
    return [self createNonInterpolatedUIImageFormCIImage:outputImage withSize:imageViewWidth];
}

1.2 UIImage转base64

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    NSData *scaledImageData = UIImageJPEGRepresentation(scaledImage, 0.8);
    
    //Encode the image data as a base64 string
    NSString *imageBase64String = [scaledImageData base64EncodedStringWithOptions:0];

案例:iOS富文本编辑器(基于WKWebview实现,Editor使用WKWebview加载一个本地editor.html文件) https://download.csdn.net/download/u011018979/85675638

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS逆向 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS开发中使用CIFilter生成二维码和条形码
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/73757768
用户1451823
2018/09/13
1.7K0
iOS 中的CIFilter(基础用法)
本文大部分内容均来自:Core Image Tutorial: Getting Started Core Image 是一个很强大的库,PS图片时用到的各种滤镜就是在这个库中。而我们创建二维码、创建条形码用这里的滤镜,只需要短短几行代码就可以撸出来(后面会讲怎么用CIFilter绘制二维码、条形码)。 文中有提到在iOS 8 上,CIFilter 的API 里有126种滤镜可用,在 同时期 Mac OS 上有160多种滤镜可用;而在iOS 9.3 上,我测试可以使用的滤镜已经达到174种,Mac OS上肯定更多咯。
Haley_Wong
2018/08/22
2.2K0
iOS 中的CIFilter(基础用法)
iOS小技能:富文本编辑器
使用[_webView loadHTMLString:html baseURL:baseURL]; 进行代码加载
公众号iOS逆向
2022/08/22
2.4K0
iOS小技能:富文本编辑器
iOS小技能:富文本编辑器(下篇)
https://blog.csdn.net/z929118967/article/details/125298245
公众号iOS逆向
2022/08/22
1.1K0
iOS小技能:富文本编辑器(下篇)
iOS系统生成二维码
// 1. 创建一个二维码滤镜实例(CIFilter) CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"]; // 滤镜恢复默认设置 [filter setDefaults]; // 2. 给滤镜添加数据 NSString *string = @"594589850445580904903"; NSData *data = [string dataUsingEncoding:NS
czjwarrior
2018/05/28
7250
iOS加载本地HTML、pdf、doc、excel文件 & HTML字符串与富文本互转
如果你有需求在手机端打开本地html的需求,又觉得使用其他方法麻烦或者不管用的时候,推荐你可以自己写个简单的app进行打开。
公众号iOS逆向
2021/07/05
2.1K0
【java基础】 图片和base64字符串互转
1、代码 package com.zsxy.util; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; im
用户5640963
2019/07/25
1.4K0
swift手撕二维码一、简介二、二维码综合案例
超市付款扫一扫,免费wifi扫一扫,添加好友扫一扫。 二维码就像是神一般的存在!! 可是到底二维码是个啥呢? QRCode.jpg 一、简介 1、概念 用某种特定的几何图形按照一定规律在平面分布的
谦谦君子修罗刀
2018/05/02
1.9K0
swift手撕二维码一、简介二、二维码综合案例
iOS小技能:MVVM数据绑定的实现方式(KVO、block、Delegate、Notification、RAC)
MVVM 的实现可以采用KVO进行数据绑定,也可以采用RAC。--- 其实还可以采用block、代理(protocol)实现。
公众号iOS逆向
2022/08/22
1.6K0
iOS小技能:MVVM数据绑定的实现方式(KVO、block、Delegate、Notification、RAC)
java实现将图片读取成base64字符串,将base64字符串存储为图片。
将图片转化为字符串以后,由于字符串更方便在网络上通过ajax传输、在网络web前台和后台间进行传输。
全栈程序员站长
2022/11/18
2.1K0
C#实现图片转Base64字符串,以及base64字符串在Markdown文件内复原的演示
1.0.3 版本提供图片转Base64字符串方案,并提供根据后缀名自动识别Mime类型,合成标准URI
Wesky
2024/08/13
2080
C#实现图片转Base64字符串,以及base64字符串在Markdown文件内复原的演示
iOS富文本使用指南: 1、封装富文本API,采用block实现链式编程 2、 超链接属性 3、HTML字符串与富文本互转
iOS开发效率工具:完整SDK源码【封装富文本API,采用block实现链式编程】(block 的妙用:结合block和方法的优点实现iOS的链式编程)
公众号iOS逆向
2021/03/08
1.6K0
iOS富文本使用指南: 1、封装富文本API,采用block实现链式编程 2、 超链接属性 3、HTML字符串与富文本互转
iOS支付项目实践专栏- 总目录(持续更新)
本专栏以实战为线索,逐步深入iOS开发各个环节,掌握支付APP常用的基础功能(均含demo源码),打造完整native客户端工作流,提升工程化编码能力和思维能力。
公众号iOS逆向
2021/07/05
9900
iOS支付项目实践专栏- 总目录(持续更新)
iOS字符串的本地化(APP 内的本地化切换) 、nib本地化、图片本地化
使用本地化功能,可以轻松地将应用程序翻译成多种语言,甚至可以翻译成同一语言的多种方言
公众号iOS逆向
2021/07/05
1.8K0
iOS字符串的本地化(APP 内的本地化切换) 、nib本地化、图片本地化
Base64编码的字符串与图片的互转
用Flex写了一个例子,图片(暂时仅支持png、jpg/jpeg)转成base64编码的字符串(默认取上传文件的后缀名,然后添加了“data:image/(png|gif|jpg|jpeg);base64,”)
meteoric
2018/11/16
1.7K0
iOS小技能:查看大图浏览器(图片支持滑动切换)
demo视频:https://live.csdn.net/v/embed/157526
公众号iOS逆向
2022/08/22
1.2K0
iOS小技能:查看大图浏览器(图片支持滑动切换)
iOS小技能:WKWebView与JS的交互
由于目前UIWebView 已经被抛弃了,因此推荐使用WKWebView的WKScriptMessageHandler实现iOS与JS交互
公众号iOS逆向
2022/12/19
7.9K0
iOS小技能:WKWebView与JS的交互
iOS小技能:敏感逻辑的保护方案
把函数名隐藏在结构体里,以函数指针成员的形式存储 (案例:js从OC本地方法获取设备及签名信息)
公众号iOS逆向
2022/12/19
6590
iOS小技能:敏感逻辑的保护方案
重温delphi之:如何将Bitmap位图与base64字符串相互转换
先引用delphi自带的单元 uses EncdDecd; 然后就可以使用下面二个函数了: by 菩提树下的杨过 http://yjmyzz.cnblogs.com/ ///将Bitmap位图转化为base64字符串 function BitmapToString(img:TBitmap):string ; var   ms:TMemoryStream;   ss:TStringStream;   s:string; begin     ms := TMemoryStream.Create;     im
菩提树下的杨过
2018/01/23
1.1K0
用Python将图片转换为base64字符串
无他,这篇博文记录一下利用Python将OpenCV图片转换为base64字符串并在网页上进行展示的过程,权当备忘。可在这里查看源码。
王云峰
2023/10/23
7750
推荐阅读
相关推荐
iOS开发中使用CIFilter生成二维码和条形码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验