UIImage
的寬和高設(shè)置為640,識別不出來再進(jìn)行縮放識別。修改 UIImage
的代碼如下:-(UIImage *)TransformtoSize:(CGSize)Newsize{ // 創(chuàng)建一個bitmap的context UIGraphicsBeginImageContext(Newsize); // 繪制改變大小的圖片 [self drawInRect:CGRectMake(0, 0, Newsize.width, Newsize.height)]; // 從當(dāng)前context中創(chuàng)建一個改變大小后的圖片 UIImage *TransformedImg=UIGraphicsGetImageFromCurrentImageContext(); // 使當(dāng)前的context出堆棧 UIGraphicsEndImageContext(); // 返回新的改變大小后的圖片 return TransformedImg;}
這樣類似于ZXing中的tryHard設(shè)置為YES。識別不出來的二維碼圖片就可以識別了。
2016年5月20日
bug: 點(diǎn)擊進(jìn)入掃一掃界面,退出,再進(jìn)入,這樣重復(fù)5次左右,掃一掃之前的界面的會出現(xiàn)卡頓。
原因:多次進(jìn)入掃一掃界面,再退出,因此界面未被系統(tǒng)回收,captureSession對象一直在運(yùn)行,會造成內(nèi)存泄露,引起上一個界面卡頓。
解決方案:在視圖將要消失的時候,確保captureSession對象停止運(yùn)行。
- (void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; if ([self.captureSession isRunning]) { [self.captureSession stopRunning]; }}