使用iOS原生组件生成二维码和扫描识别二维码

iOS生成二维码和扫描识别二维码

1 .生成二维码

1).相关类:
CIFilter

官方文档描述CIFilter类,是一个操作一个或多个图片来生成一个新的图片数据的图片处理器;CIFilter可以看做是一个滤镜,Apple提供了上百种的CIFilter,通过filterWithName:(NSString*)方法获取,CIFilter的种类可以从这里查看。
CIFIlter具有强大图像处理的功能,具体使用可以查看官方文档

CIImage

Core Image filters生成或处理的图片数据。CIImage虽然含有图片数据,但是它并不是图片,CIImage含有生成一张图片的所有数据,除非Core Image被告知要去渲染生成一张图片,否则它不会自己去渲染生成图片。
extent属性表示图片尺寸。

CGBitmapContext

CGBitmapContext是用来生成bitmap的Core Graphics上下文。生成函数:

CGContextRef CGBitmapContextCreate(void *data, size_t width, size_t height, size_t bitsPerComponent, size_t bytesPerRow, CGColorSpaceRef space, uint32_t bitmapInfo);

data是指向哪块内存用来渲染bitmap的指针。这块内存的大小至少为bytesPerRow*height bytes。我们将data传值NULL,可以让这个函数自己开辟内存空间,并为我们管理其内存,不需要我们在去手动释放内存。

width 表示bitmap的宽度像素值

height 表示bitmap的高度像素值

bitPerComponent 表示内存中每个像素值的位数

bytesPerRow 表示bitmap的每一行用了内存多少字节。因为前面data参数传的是NULL,所以这个参数传0,让其自动计算

colorspace 是bitmap上下文中用来描述颜色,color space主要有gray,rgb,CMYK,Lab等

bitmapInfo 表示bitmap是否包含一个alpha channel以及alpha channel在像素上的相对位置和像素值是浮点数还是整数等bitmap的layout信息。
bitmapInfocolor space有关。具体使用可以查看Quartz 2D Programming Guide 相关章节

最后使用完毕后,别忘了使用CGContenxtRelease()函数释放内存

CIContext

Core Image上下文

2).流程:

创建CIFilter,调用seDefaults完成对filter的初步设置

//_filter作为属性
_filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
[_filter setDefaults]; //如果是在MacOS上,调用完filterWithName创建的CIFilter对象需要调用
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值