iOS 仿微信掃一掃框咙,相冊識別二維碼

前言

掃一掃還是借助原生煤墙,原生掃描很強(qiáng)勢,封裝掃描工具類馍刮,閃光燈信夫,掃描View,借助第三方照片選擇器TZImagePickerController實現(xiàn)相冊選中識別二維碼。

代碼

掃一掃使用方法:

1卡啰、配置

   self.scanManager = [LXQRCodeScanManager sharedManager];
    NSArray *arr = @[AVMetadataObjectTypeQRCode, AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code];
    // AVCaptureSessionPreset1920x1080 推薦使用静稻,對于小型的二維碼讀取率較高
    [_scanManager setupSessionPreset:AVCaptureSessionPreset1920x1080 metadataObjectTypes:arr currentController:self];`

2、處理掃描結(jié)果回調(diào) 以及 光線對閃光燈的控制

  //掃描結(jié)果回調(diào)
    [_scanManager scanResult:^(NSArray *metadataObjects) {
//        NSLog(@"metadataObjects - - %@", metadataObjects);
        
        if (metadataObjects != nil && metadataObjects.count > 0) {
             [weakSelf.scanManager palySoundName:@"sound.caf"];
             AVMetadataMachineReadableCodeObject *obj = metadataObjects[0];
            NSString *url =[obj stringValue];
           
            LXQRResultController *Vc =[[LXQRResultController alloc]init];
            Vc.navTitle = @"掃描結(jié)果";
            if ([url hasPrefix:@"http"]) {
                Vc.url = url;
            }
            [weakSelf.navigationController pushViewController:Vc animated:YES];
        
        } else {
            [NSObject showMessag:@"暫未識別出掃描的二維碼" toView:weakSelf.view afterDelay:1];
        }
    }];
    
    
    //光線變化回調(diào)
    [_scanManager brightnessChange:^(CGFloat brightness) {
        
        [weakSelf.scanView lightBtnChangeWithBrightnessValue:brightness];
        
    }];

相冊識別二維碼跳轉(zhuǎn):

#pragma mark---借助第三方相冊
- (void)rightBarButtonItenAction {
    
  
    TZImagePickerController *pickerController = [[TZImagePickerController alloc]initWithMaxImagesCount:1 delegate:self];
    
    WS(weakSelf);
    
    [pickerController setDidFinishPickingPhotosHandle:^(NSArray<UIImage *> *photo, NSArray *assets, BOOL isSelectOriginalPhoto){
        
//        NSLog(@"%@",photo);
        
        UIImage *image = photo[0];
        // CIDetector(CIDetector可用于人臉識別)進(jìn)行圖片解析碎乃,從而使我們可以便捷的從相冊中獲取到二維碼
        // 聲明一個 CIDetector,并設(shè)定識別類型 CIDetectorTypeQRCode
        CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeQRCode context:nil options:@{CIDetectorAccuracy: CIDetectorAccuracyHigh}];
        
        // 取得識別結(jié)果
        NSArray *features = [detector featuresInImage:[CIImage imageWithCGImage:image.CGImage]];
        
        NSString *resultStr;
        if (features.count == 0) {
            
            [NSObject showMessag:@"暫未識別出二維碼" toView:self.view afterDelay:1];
        }else{
            for (int index = 0; index < [features count]; index ++) {
                CIQRCodeFeature *feature = [features objectAtIndex:index];
                resultStr = feature.messageString;
            }
            LXQRResultController *Vc =[[LXQRResultController alloc]init];
            Vc.navTitle = @"掃描結(jié)果";
            if ([resultStr hasPrefix:@"http"]) {
                Vc.url = resultStr;
            }
            [weakSelf.navigationController pushViewController:Vc animated:YES];
      
        }
        
    }];
    [self presentViewController:pickerController animated:YES completion:nil];
    
}

最后

效果圖:
2018-04-09 15_13_59.gif

demo地址:LXQRCode

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惠奸,一起剝皮案震驚了整個濱河市梅誓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌佛南,老刑警劉巖梗掰,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異嗅回,居然都是意外死亡及穗,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門绵载,熙熙樓的掌柜王于貴愁眉苦臉地迎上來埂陆,“玉大人苛白,你說我怎么就攤上這事》偈” “怎么了购裙?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鹃栽。 經(jīng)常有香客問我躏率,道長,這世上最難降的妖魔是什么民鼓? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任薇芝,我火速辦了婚禮,結(jié)果婚禮上丰嘉,老公的妹妹穿的比我還像新娘夯到。我一直安慰自己,他們只是感情好供嚎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布黄娘。 她就那樣靜靜地躺著,像睡著了一般克滴。 火紅的嫁衣襯著肌膚如雪逼争。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天劝赔,我揣著相機(jī)與錄音誓焦,去河邊找鬼。 笑死着帽,一個胖子當(dāng)著我的面吹牛杂伟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播仍翰,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼赫粥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了予借?” 一聲冷哼從身側(cè)響起越平,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎灵迫,沒想到半個月后秦叛,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瀑粥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年挣跋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狞换。...
    茶點(diǎn)故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡避咆,死狀恐怖舟肉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情牌借,我是刑警寧澤度气,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站膨报,受9級特大地震影響磷籍,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜现柠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一院领、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧够吩,春花似錦比然、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至湾笛,卻和暖如春饮怯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背嚎研。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工蓖墅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人临扮。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓论矾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親杆勇。 傳聞我的和親對象是個殘疾皇子贪壳,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容