了解Core Image框架

#Core Image框架提供:

  • 访问内置图像处理过滤器
  • 特征检测功能
  • 支持自动图像增强
  • 将多个过滤器链接在一起以创建自定义效果的功能
  • 支持创建在GPU上运行的自定义过滤器
  • 基于反馈的图像处理功能
    ##CIImage 介绍
  • CIImage 由Core Image过滤器处理或生成的图像的表示。
  • CIImage对象具有与之关联的图像数据,但它不是图像。可以将CIImage对象视为图像“食谱”。
  • CIImage对象具有生成图像所需的所有信息,但Core Image在被告知这样做之前实际上不会渲染图像.
  • CIContext 和CIImage对象是不可变的,这意味着每个都可以在线程之间安全地共享。
    几乎任何图像数据源创建Core Image图像对象,包括:
    1. 引用要加载的图像文件的URL或NSData包含图像文件数据的对象.

    2. Quartz2D,UIKit中,或者了AppKit图像表示(CGImageRef,UIImage,或NSBitmapImageRep对象).

    3. Metal,OpenGL或OpenGL ES纹理.

    4. CoreVideo图像或像素缓冲区(CVImageBufferRef或CVPixelBufferRef).

    5. IOSurfaceRef 在进程之间共享图像数据的对象.

    6. 内存中的图像位图数据(指向此类数据的指针,或CIImageProvider按需提供数据的对象).
      创建CIImage方式之一:

       CIImage *image = [CIImage imageWithCGImage:[UIImage imageNamed:@"youyong"].CGImage];
      
如果不想使用CoreImage框架,也可以使用ZBarSDK来获取图片中二维码的定位。 1. 导入ZBarSDK: 在项目中导入ZBarSDK,并在需要使用的文件中引入头文件: ``` #import "ZBarSDK.h" ``` 2. 加载图片: ``` UIImage *image = [UIImage imageNamed:@"image.png"]; CGImageRef imageRef = image.CGImage; ``` 3. 创建ZBarImageScanner并设置识别类型: ``` ZBarImageScanner *scanner = [[ZBarImageScanner alloc] init]; [scanner setSymbology: ZBAR_QRCODE config: ZBAR_CFG_ENABLE to: 1]; ``` 4. 将图片转换为ZBarImage对象: ``` ZBarImage *zbarImage = [[ZBarImage alloc] initWithCGImage:imageRef]; ``` 5. 扫描二维码: ``` [scanner scanImage:zbarImage]; ``` 6. 遍历扫描结果,获取二维码定位: ``` for (ZBarSymbol *symbol in scanner.results) { NSArray *corners = symbol.bounds; // 获取定位四个角的坐标 // 在图像上绘制定位 UIGraphicsBeginImageContext(imageSize); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetStrokeColorWithColor(context, [UIColor greenColor].CGColor); CGContextSetLineWidth(context, 2.0); CGContextMoveToPoint(context, corners[0].x, corners[0].y); CGContextAddLineToPoint(context, corners[1].x, corners[1].y); CGContextAddLineToPoint(context, corners[2].x, corners[2].y); CGContextAddLineToPoint(context, corners[3].x, corners[3].y); CGContextAddLineToPoint(context, corners[0].x, corners[0].y); CGContextStrokePath(context); UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); } ``` 这样就可以在原图上绘制出二维码的定位了。需要注意的是,ZBarSDK是第三方框架,需要先在官网注册并获取授权才能使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值