簡單使用系統的裝置實現二維碼掃描
這裡我用了系統的東西簡單的實現了一下掃描二維碼
.h
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@interface saoMiaoViewController : UIViewController
@property(nonatomic,retain) UIView * sanRectView;
//硬體裝置
@property(nonatomic,retain) AVCaptureDevice * device;
//輸入裝置
@property(nonatomic,retain)
AVCaptureDeviceInput
//輸出裝置
@property(nonatomic,retain) AVCaptureMetadataOutput * outPut;
//橋樑。連結輸入和輸出裝置
@property(nonatomic,retain)AVCaptureSession * session;
@property(nonatomic,retain)AVCaptureVideoPreviewLayer * preView;
@end
接下來看.m檔案
@interfacesaoMiaoViewController ()<AVCaptureMetadataOutputObjectsDelegate
@end
@implementation saoMiaoViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view.
self.title = @"進入連線";
CGSize windowSize = [UIScreenmainScreen].bounds.size;
CGSize scanSize =
CGSizeMake(windowSize.width*3/5, windowSize.width * 3/5);
CGRect scanRect = CGRectMake( ((windowSize.height-scanSize.height)/2)/windowSize.height,((windowSize.width-scanSize.width)/2)/windowSize.width, (scanSize.height+10)/windowSize.height,(scanSize.width + 10)/windowSize.width);
self.device = [AVCaptureDevicedefaultDeviceWithMediaType:AVMediaTypeVideo];
self.input = [AVCaptureDeviceInputdeviceInputWithDevice:self.deviceerror:nil];
self.outPut = [[AVCaptureMetadataOutputalloc] init];
[self.outPutsetMetadataObjectsDelegate:selfqueue:dispatch_get_main_queue()];
self.session = [[AVCaptureSessionalloc] init];
[self.sessionsetSessionPreset:([UIScreenmainScreen].bounds.size.height<500)?AVCaptureSessionPreset640x480:AVCaptureSessionPresetHigh];
[self.sessionaddInput:self.input];
[self.sessionaddOutput:self.outPut];
self.outPut.metadataObjectTypes[email protected][AVMetadataObjectTypeQRCode];
self.preView = [AVCaptureVideoPreviewLayerlayerWithSession:self.session];
self.preView.videoGravity = AVLayerVideoGravityResizeAspectFill;
self.preView.frame = [UIScreenmainScreen].bounds;
self.preView.backgroundColor = [UIColorcolorWithRed:1 green:1 blue:1 alpha:0.7].CGColor;
[self.view.layerinsertSublayer:self.preViewatIndex:0];
self.sanRectView = [UIViewnew];
[self.viewaddSubview:self.sanRectView];
self.sanRectView.frame = CGRectMake(0, 0, scanSize.width, scanSize.height);
self.sanRectView.center = CGPointMake(CGRectGetMidX([UIScreenmainScreen].bounds), CGRectGetMidY([UIScreenmainScreen].bounds));
self.sanRectView.layer.borderColor = [UIColorwhiteColor].CGColor;
self.sanRectView.layer.borderWidth = 2;
self.outPut.rectOfInterest =scanRect;
//開始捕獲
[self.sessionstartRunning];
}
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection
{
if ( (metadataObjects.count==0) )
{
return;
}
if (metadataObjects.count>0) {
[self.sessionstopRunning];
AVMetadataMachineReadableCodeObject *metadataObject = metadataObjects.firstObject;
SendUrlViewController * send = [[SendUrlViewControlleralloc] init];
send.nameUrl = metadataObject.stringValue;
[self.navigationControllerpushViewController:send animated:YES];
}
}
此文純屬個人為了記憶而寫。當然要是能幫到別人當然也很開心了A.A
相關推薦
簡單使用系統的裝置實現二維碼掃描
這裡我用了系統的東西簡單的實現了一下掃描二維碼 .h #import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @interface saoMiaoViewController :
使用系統提供的AVFoundation 實現二維碼掃描(帶動畫)
注意這裡的掃描必須真機測試 模擬器上是看不出來效果的 #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController ()<AVCa
簡單實現二維碼掃描
文章是我轉載的哦,一片楓葉_劉超大神寫的好棒,謝謝分享,原文地址http://blog.csdn.net/qq_23547831/article/details/52037710#reply 本文將講解一下我最近寫的一個快速整合二維碼掃描庫,這裡需要說明的是其核心的實現
使用系統的AVMetadataObject類實現二維碼掃描
前言 有關二維碼的介紹,我這裡不做過多說明, 可以直接去基維百科檢視,附上鍊接QR code. IOS7之前,開發者進行掃碼程式設計時,一般會藉助第三方庫。常用的是ZBarSDKa和ZXingObjC,IOS7之後,系統的AVMetadataObject類中,為我們提供
實現二維碼掃描
首先app頁面 public class MyApp extends Application{ @Override public void onCreate() { super.onCreate(); ZXingL
Xamarin.Android-用ZXing實現二維碼掃描以及連續掃描
一、前言 本文的內容有兩個基礎:ZXing.Net和ZXing.Net.Mobile ZXing.Net:ZXing的C#實現,主要封裝了各種二維碼的編碼、解碼等跨平臺的演算法 ZXing.Net.Mobile:對ZXing.Net在xamarin的應用進行了封裝,主要實現了攝像頭掃描、掃描view、掃
Android實現二維碼掃描功能(三)-閃光燈控制
簡介 本篇我們對光線暗淡情況下閃光燈的使用做出介紹。 效果 晚上測試時: 開燈後: 未開燈: 實現步驟 1、在activity_scanner.xml介面上加上閃光燈開關按鈕。可以是Button、Checkbox等控制元件。
Android實現二維碼掃描登入網頁
之前寫過一個二維碼掃描demo,用的Zxing的框架,點選下載,後續掃描二維碼中出現一些問題,比如解決壓縮圖片,調整掃描視窗大小等等。後續單位要求做掃描登入實現,發現難點就是怎麼知道你掃描的是
iOS開發——系統原生的二維碼掃描
對於現在的App應用來說,掃描二維碼這個功能是再正常不過的一個功能了,在早期開發這些功能的時候,大家或多或少的都接觸過ZXing和ZBar這類的第三方庫,但從iOS7以後,蘋果就給我們提供了系統原生的API來支援我們掃描獲取二維碼,ZXing和ZBar在使用中或多或少有不盡如人意的地方,再之停止更新很久了
Android開發之Zbar實現二維碼掃描功能
前言: 在寫這篇文章之前已經寫過兩篇關於二維碼功能的文章,有興趣的可以看看——》文章1:Android開發之利用ZXing庫實現二維碼的掃描;文章2:Android開發之利用ZXing庫實現二維碼的生成,這兩篇文章中使用到的二維碼生成庫是ZXing,在本篇
Android實現二維碼掃描功能(二)-ZXing個性化與近距離識別優化
簡介 本篇我們對掃碼介面進行優化,並對ZXing近距離無法識別的問題做出優化。 個性化定製 每個APP都有自己的表現形式,實現個性化掃碼介面定製,主要有兩個地方: activity_scanner.xml介面檔案 com.google.zxin
Android實現二維碼掃描(仿微信,輕量Zxing)
前言 要做一個功能,二維碼識別。網上找一堆相關的Demo,但是總不是想要的效果,或者都是多年前的版本,權衡考慮之後,決定親自操刀。不糾結直接選中Zxing框架,https://github.com/zxing/zxing 在網站上直接clone下來,執行,然後就發現問題了.
React Native實現二維碼掃描
依賴包匯入步驟 詳細步驟可看github上的說明,簡要記錄如下: 1. npm install react-native-camera –save 2. react-native link react-native-camera android手動l
使用開原始碼實現二維碼掃描和生成
把BarCodeTest導到ADT中,然後建立自己的工程TestQRcode,並關聯BarCodeTest.在TestQRcode工程配置檔案中新增許可權 <uses-permission android:name="android.permis
ios-實現二維碼掃描功能
在此就簡單的介紹下二維碼掃描功能的實現把 首先先說下思路,我們需要去配置的就是 1、輸入裝置(用來獲取外界資訊),輸入裝置有攝像頭、麥克風、鍵盤 2、輸出裝置(將收集到的資訊進行解析去獲取收到的內容) 3、會話的session(用來連線輸入和輸出的裝置),不然的
Google zxing實現二維碼掃描完美解決方案
最近因專案需求,需要在App中整合二維碼掃描的功能。網上找了很多資料,最後決定使用Google的zxing來實現。實現的過程遇到了很多的坑,也是因為這些坑在網上沒有具體的解決方案,今天就把我的實現過程分享給大家。 我會分為兩步來和大家分享: (1)專案中如何整合zxing
iOS使用ZBar實現二維碼掃描以及實現識別相簿中二維碼圖片功能
使用zbar呼叫相機掃碼程式碼: //開啟相機 - (void) init_camera { self.navigationController.navigationBarHidden=YES; [commonaddNavigationAddToView:
web/html5呼叫攝像頭實現二維碼掃描
閒話不說,直接上程式碼,本人測試通過! html/js <!DOCTYPE html> <html><head> <title>HTML5 code Reader</title> <meta http-
Android記錄貼:使用ZXing來實現二維碼掃描
參考資料 前言 最近一個專案需要用到掃描二維碼的功能,在網上查了一下,都是使用google的ZXing開源庫來實現的 第一步:匯入依賴 匯入依賴包,目前最新的是3.3.2,可以通過這裡來檢視最新版本 implementation 'com.go
使用依賴(ZXing)簡單的實現二維碼的掃描和生成
一個簡單的佈局 第一步:新增依賴 //二維碼依賴 implementation 'cn.yipianfengye.android:zxing-library:2.1' 這時候你要新增進去的話會有一個版本衝突,下面解決V4、V7版本衝突 //解決V4、V7版本衝突