二维码扫描和成像,成像带小图标 自定义色值

原创 2015年07月07日 11:08:05
  1. //  
  2. //  YYViewController.h  
  3. //  Dm  
  4. //  
  5. //  Created by *** on 14-4-11.  
  6. //  Copyright (c) 2014年 **. All rights reserved.  
  7. //  
  8.   
  9. #import <UIKit/UIKit.h>  
  10. #import "ZBarSDK.h"  
  11. #import <QuartzCore/QuartzCore.h>  
  12. @interface YYViewController : UIViewController<ZBarReaderDelegate,UITextFieldDelegate>  
  13.   
  14. -(IBAction)btnyy:(id)sender;  
  15. -(IBAction)btnsm:(id)sender;  
  16. @end  

[objc] view plaincopy在CODE上查看代码片派生到我的代码片
  1. //  
  2. //  YYViewController.m  
  3. //  Dm  
  4. //  
  5. //  Created by ** on 14-4-11.  
  6. //  Copyright (c) 2014年 **. All rights reserved.  
  7. //  
  8.   
  9. #import "YYViewController.h"  
  10. #import "QRCodeGenerator.h"  
  11.   
  12. @interface YYViewController ()  
  13. {  
  14.     IBOutlet UIButton *btnyy;  
  15.     IBOutlet UIImageView *img;  
  16.     IBOutlet UITextField *sd;  
  17. }  
  18. @end  
  19.   
  20. @implementation YYViewController  
  21.   
  22. - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil  
  23. {  
  24.     self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];  
  25.     if (self) {  
  26.         // Custom initialization  
  27.     }  
  28.     return self;  
  29. }  
  30.   
  31. - (void)viewDidLoad  
  32. {  
  33.     [super viewDidLoad];  
  34.     sd.delegate=self;  
  35.     // Do any additional setup after loading the view from its nib.  
  36. }  
  37.   
  38. - (void)didReceiveMemoryWarning  
  39. {  
  40.     [super didReceiveMemoryWarning];  
  41.     // Dispose of any resources that can be recreated.  
  42. }  
  43. -(IBAction)btnsm:(id)sender  
  44. {  
  45.     /*扫描二维码部分: 
  46.      导入ZBarSDK文件并引入一下框架 
  47.      AVFoundation.framework 
  48.      CoreMedia.framework 
  49.      CoreVideo.framework 
  50.      QuartzCore.framework 
  51.      libiconv.dylib 
  52.      引入头文件#import “ZBarSDK.h” 即可使用 
  53.      当找到条形码时,会执行代理方法 
  54.       
  55.      - (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info 
  56.       
  57.      最后读取并显示了条形码的图片和内容。*/  
  58.     [sd resignFirstResponder];  
  59.     if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]){  
  60.     ZBarReaderViewController *reader = [ZBarReaderViewController new];  
  61.     reader.readerDelegate = self;  
  62.     reader.supportedOrientationsMask = ZBarOrientationMaskAll;  
  63.       
  64.     ZBarImageScanner *scanner = reader.scanner;  
  65.       
  66.     [scanner setSymbology: ZBAR_I25  
  67.                    config: ZBAR_CFG_ENABLE  
  68.                        to: 0];  
  69.       
  70.     [self presentModalViewController: reader  
  71.                             animated: YES];  
  72.     }  
  73.     else  
  74.     {  
  75.         UIAlertView *aler=[[UIAlertView alloc]initWithTitle:@"Message" message:@"无法打开设备的摄像头!请授权!" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确认", nil nil];  
  76.         [aler show];  
  77.     }  
  78.    
  79.   
  80.       
  81. }  
  82. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  83. {  
  84.     return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
  85. }  
  86. - (void) imagePickerController: (UIImagePickerController*) reader  
  87.  didFinishPickingMediaWithInfo: (NSDictionary*) info  
  88. {  
  89.       [sd resignFirstResponder];  
  90.     id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];  
  91.     ZBarSymbol *symbol = nil;  
  92.     for(symbol in results)  
  93.         // EXAMPLE: just grab the first barcode  
  94.         break;  
  95.       
  96.     // EXAMPLE: do something useful with the barcode data  
  97.     NSLog(@"%@",symbol.data);  
  98.       
  99.     img.image =  
  100.     [info objectForKey: UIImagePickerControllerOriginalImage];  
  101.       
  102.     [reader dismissModalViewControllerAnimated: YES];  
  103.       
  104.     //判断是否包含 头'http:'  
  105.     NSString *regex = @"http+:[^\\s]*";  
  106.     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];  
  107.       
  108.     //判断是否包含 头'ssid:'  
  109.     NSString *ssid = @"ssid+:[^\\s]*";;  
  110.     NSPredicate *ssidPre = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",ssid];  
  111.       
  112.     sd.text =  symbol.data ;  
  113.       
  114.     if ([predicate evaluateWithObject:sd.text]) {  
  115.           
  116.         UIAlertView * alert = [[UIAlertView alloc]initWithTitle:nil  
  117.                                                         message:@"It will use the browser to this URL。"  
  118.                                                        delegate:nil  
  119.                                               cancelButtonTitle:@"Close"  
  120.                                               otherButtonTitles:@"Ok", nil nil];  
  121.         alert.delegate = self;  
  122.         alert.tag=1;  
  123.         [alert show];  
  124.    
  125.           
  126.     }  
  127.     else if([ssidPre evaluateWithObject:sd.text]){  
  128.           
  129.         NSArray *arr = [sd.text componentsSeparatedByString:@";"];  
  130.           
  131.         NSArray * arrInfoHead = [[arr objectAtIndex:0] componentsSeparatedByString:@":"];  
  132.           
  133.         NSArray * arrInfoFoot = [[arr objectAtIndex:1] componentsSeparatedByString:@":"];  
  134.           
  135.           
  136.         sd.text=  
  137.         [NSString stringWithFormat:@"ssid: %@ \n password:%@",  
  138.          [arrInfoHead objectAtIndex:1],[arrInfoFoot objectAtIndex:1]];  
  139.           
  140.           
  141.         UIAlertView * alert = [[UIAlertView alloc]initWithTitle:sd.text  
  142.                                                         message:@"The password is copied to the clipboard , it will be redirected to the network settings interface"  
  143.                                                        delegate:nil  
  144.                                               cancelButtonTitle:@"Close"  
  145.                                               otherButtonTitles:@"Ok", nil nil];  
  146.           
  147.           
  148.         alert.delegate = self;  
  149.         alert.tag=2;  
  150.         [alert show];  
  151.    
  152.         UIPasteboard *pasteboard=[UIPasteboard generalPasteboard];  
  153.         //        然后,可以使用如下代码来把一个字符串放置到剪贴板上:  
  154.         pasteboard.string = [arrInfoFoot objectAtIndex:1];  
  155.           
  156.           
  157.     }  
  158.       
  159. }  
  160. -(BOOL)textFieldShouldReturn:(UITextField *)textField  
  161. {  
  162.     [textField resignFirstResponder];  
  163.     return YES;  
  164. }  
  165. -(IBAction)btnyy:(id)sender  
  166. {  
  167.     [sd resignFirstResponder];  
  168.     UIImage *imgs=[UIImage imageNamed:@"1xx.png"];  
  169.     img.image = [QRCodeGenerator qrImageForString:sd.text imageSize:img.bounds.size.width Topimg:imgs];  
  170. //    img.image= [QRCodeGenerator  qrImageForString:sd.text imageSize:img.frame.size.width withPointType:0 withPositionType:0 withColor:[UIColor redColor]];  
  171. }  
  172.   
  173. @end  
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

原生二维码扫描实现, 二维码、中间带小图标、条形码生成

今天在review代码的时候重新整理了一下项目中的原生的二维码扫描及生成的代码,和大家分享一下。跟大家分享的主要有两个类: QRCodeScanView 扫描视图, 识别出信息后回有震动提示,可以打...
  • zxw_xzr
  • zxw_xzr
  • 2017年03月23日 18:22
  • 305

带小图标的二维码

  • 2016年05月11日 20:14
  • 194KB
  • 下载

unity多平台二维码扫描(可自定义UI)

在unity里做扫二维码的功能,虽然有插件,但是移动端UI一般不能自定义,所以后来自已做了一个,直接在c#层扫描解析,UI上就可以自己发挥了。 上代码: 这个是调用zxing的脚本。 using...

Zxing自定义界面的二维码扫描

  • 2017年06月28日 09:24
  • 483KB
  • 下载

自定义二维码扫描

  • 2017年11月15日 10:08
  • 3.61MB
  • 下载

android 自定义view 实现定制二维码扫描框

上一篇文章说到如何使用google的zxing开源框架android导入zxing进行二维码开发,本篇就讲讲如何通过自定义ViewFinderView这个类来制作我们自己的扫描框。首先在com\goo...

ios自定义二维码扫描

  • 2014年12月05日 10:04
  • 2.87MB
  • 下载

ZXing实现自定义二维码扫描框

  • 2017年05月20日 16:42
  • 5.04MB
  • 下载

自定义 React Native 二维码扫描组件(简单,易用!)

本文为 Marno 原创,转载必须保留出处!公众号 aMarno,关注后回复 RN 加入交流群简书专题《 React-Native 开发阵营 》,欢迎关注和投稿React Native 优秀开源项目大...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:二维码扫描和成像,成像带小图标 自定义色值
举报原因:
原因补充:

(最多只允许输入30个字)