iOS开发中使用CIFilter生成二维码和条形码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/73757768

在iOS7之后我们可以使用苹果自带的CIFilter这个类生成二维码,我们可以通过为UIImage这个类添加一个分类来实现该功能。代码:

+ (UIImage *)qrCodeImageWithInfo:(NSString *)info  width:(CGFloat)width

{

if (!info) {

return nil;

    }

NSData *strData = [info dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];

//创建二维码滤镜

CIFilter *qrFilter = [CIFilter filterWithName:@"CIQRCodeGenerator"];

    [qrFilter setValue:strData forKey:@"inputMessage"];

    [qrFilter setValue:@"H" forKey:@"inputCorrectionLevel"];

CIImage *qrImage = qrFilter.outputImage;

//颜色滤镜

CIFilter *colorFilter = [CIFilter filterWithName:@"CIFalseColor"];

    [colorFilter setDefaults];

    [colorFilter setValue:qrImage forKey:kCIInputImageKey];

//    [colorFilter setValue:[CIColor colorWithRed:0 green:0 blue:0] forKey:@"inputColor0"];

//    ![Uploading 1A4978EE-427F-4804-B536-1D5C330A0578_306160.png . . .][colorFilter setValue:[CIColor colorWithRed:1 green:1 blue:1] forKey:@"inputColor1"];

CIImage *colorImage = colorFilter.outputImage;

//返回二维码

CGFloat scale = width/31;

UIImage *codeImage = [UIImage imageWithCIImage:[colorImage imageByApplyingTransform:CGAffineTransformMakeScale(scale, scale)]];

return codeImage;

}

在iOS8之后我们还可以使用CIFilter这个类来生成条形码,我们同样可以通过为UIImage这个类添加分类的方法来实现该功能。代码:

+ (UIImage *)barCodeImageWithInfo:(NSString *)info

{

// 1.将字符串转换成NSData

NSData *data = [info dataUsingEncoding:NSUTF8StringEncoding];

// 2.创建条形码滤镜

CIFilter *filter = [CIFilter filterWithName:@"CICode128BarcodeGenerator"];

// 3.恢复滤镜的默认属性

    [filter setDefaults];

// 4.设置滤镜inputMessage数据

    [filter setValue:data forKey:@"inputMessage"];

// 5.获得滤镜输出的图像

CIImage *urlImage = [filter outputImage];

// 6.将CIImage 转换为UIImage

UIImage *image = [UIImage imageWithCIImage:urlImage];

return image;

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏DannyHoo的专栏

label中文字的自适应

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

1901
来自专栏Python疯子

Swift -标签页控制器(UITabBarController)用法

Simulator Screen Shot 2016年11月8日 19.11.36.png

5752
来自专栏游戏杂谈

IOS隐藏键盘

1、UIWebView加载网页后,点击网页内的链接在UIWebView内进行跳转时,键盘自动弹起;

1702
来自专栏陈满iOS

iOS开发验证:设置UITableView的Footer视图透明

其实,上述的方法可以将视图背景改成非透明色,比如红色。但改成透明的时候,还是会显示灰色,不是真正的透明。

931
来自专栏蜉蝣禅修之道

关于iOS Tabbar的一些设置

3034
来自专栏王大锤

iOS8 自定义navigationbar 以及 UIBarButtonItem 边距问题

3217
来自专栏wOw的Android小站

[iOS] 小问题记录

iOS 往数据库里写保存文件路径的时候,不要写全路径,因为软件更新或者重新安装沙盒路径会变

1092
来自专栏老司机的简书

老司机出品———疯狂造轮子之滑动验证码

消失了好久,大家放心,我还活着。 要问我为什么消失了这么久,如果你知道什么叫封闭开发或许你会懂我。

2403
来自专栏Alice

ios textView跟随键盘的移动

实现效果: textview 能够跟随键盘的移动而移动 效果图如下: ? ? 下边贴上主要的代码: 1.创建textview @interface ViewCo...

2875
来自专栏coding...

iOS开发-RAC+MVVM练手项目 图床App写在前面准备工作界面设计首页历史关于后记

前段时间闲着无聊和盆友就搞了个图床站Chevereto-Free,忽然发现居然有API提供,而且很简单,只需要一个KEY就可以

1162

扫码关注云+社区

领取腾讯云代金券