iOS 识别相册中图片的条形码

用CIDetector类,但是这个类只能识别二维码图片,条形码目前暂不支持

SO:
读取相册中的二维码/条形码,使用ZBarSDK,下面介绍一下怎么在工程中引入ZBarSDK,因为我的Demo工程没有使用CocoaPods去管理第三方库,所以介绍手动将ZBarSDK导入工程并配置。

步骤一.在工程中建一个Frameworks文件夹将ZBarSDK文件夹导入,如图


iOS 识别相册中图片的条形码_第1张图片
5173163-39fb4b9322817085.png

步骤二.在工程中添加依赖库,如图:


iOS 识别相册中图片的条形码_第2张图片
5173163-bf825a3f0b67d917.png

步骤三.导入头文件并调用对应方法。

import "ZBarSDK.h"

  1. /**

    • 获取相册中的二维码图片
  2. */

    • (void)getQRcodeImage {
  3. // ZBarsSDK 初始化

  4. ZBarReaderController *imagePicker = [ZBarReaderController new];

  5. imagePicker.showsHelpOnFail = NO; // 禁止显示读取失败页面

  6. imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

  7. imagePicker.delegate = self;

  8. imagePicker.allowsEditing = YES;

  9. [self presentViewController:imagePicker animated:YES completion:nil];

  10. }

  11. /**

    • 选中图片的回调
  12. */

  13. -(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

  14. {

  15. id results = [info objectForKey:ZBarReaderControllerResults];

  16. ZBarSymbol *symbol = nil;

  17. for(symbol in results) {

  18. break;

  19. }

  20. [picker dismissViewControllerAnimated:YES completion:^{

  21. //二维码字符串

  22. NSString *QRCodeString = symbol.data;

  23. // 触发回调

  24. [self getScanDataString:QRCodeString];

  25. }];

  26. }

  27. /**

    • 读取二维码/条码失败的回调
  28. */

  29. -(void)readerControllerDidFailToRead:(ZBarReaderController *)reader withRetry:(BOOL)retry{

  30. if (retry) { //retry == 1 选择图片为非二维码。

  31. [self dismissViewControllerAnimated:YES completion:^{

  32. [self getScanDataString:@"未发现二维码/条码"];

  33. }];

  34. }

  35. return;

  36. }

这样就可以成功的读取手机相册中的条形码和二维码图片了。

分享ZBarSDK的下载地址

你可能感兴趣的:(iOS 识别相册中图片的条形码)