因公司業(yè)務(wù)需求,在掃描二維碼基礎(chǔ)的前提下,也需要滿足用戶點(diǎn)擊相冊(cè)按妞,從相冊(cè)獲取本地保存二維碼實(shí)現(xiàn)簽到功能,在網(wǎng)上查閱相關(guān)資料后,整理了下,有以下幾種方式:
為美蘭等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及美蘭網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站建設(shè)、成都網(wǎng)站制作、美蘭網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
ios8.0以后可以通過(guò)使用系統(tǒng)原生的框架實(shí)現(xiàn)該功能,即CIDetector,直接上代碼,但是通過(guò)驗(yàn)證發(fā)現(xiàn),大部分二維碼都能夠識(shí)別,但是對(duì)于通過(guò)拍照保存的二維碼,則出現(xiàn)很大概率無(wú)法識(shí)別,故此方法限制性比較大,不建議推薦使用,如想使用,可以直接照搬網(wǎng)上相關(guān)的代碼;
使用先階段比較流行的zxingObjC框架來(lái)掃描相冊(cè)的二維碼,但該框架不好用的一點(diǎn)就是對(duì)拍照的二維碼識(shí)別度不是很高,而且對(duì)于截圖保存的二維碼也有很強(qiáng)的限制;因該框架對(duì)只有在280X280狀態(tài)下識(shí)別度會(huì)增大很多,故需要對(duì)本地選擇的二維碼圖片進(jìn)行壓縮
NSInteger xx = ceil( img.size.width );
if(xx > 280){
img = [img TransformtoSize:CGSizeMake(280, 280)];
}
這樣壓縮之后識(shí)別度提升很多,但是還會(huì)出現(xiàn)部分二維碼無(wú)法識(shí)別的狀態(tài),所以這樣處理還不夠,后經(jīng)測(cè)試,發(fā)現(xiàn)把圖片壓縮成256像素左右,這樣基本上能夠保證保存在本地的二維碼圖片能夠進(jìn)行識(shí)別,在此粘貼部分代碼,供大家參考借鑒:
UIImage* bigImage = img;
float actualHeight = bigImage.size.height;
float actualWidth = bigImage.size.width;
float newWidth =0;
float newHeight =0;
if(actualWidth > actualHeight) {
//寬圖
newHeight =256.0f;
newWidth = actualWidth / actualHeight * newHeight;
}else{
//長(zhǎng)圖
newWidth =256.0f;
newHeight = actualHeight / actualWidth * newWidth;
}
CGRect rect =CGRectMake(0.0,0.0, newWidth, newHeight);
UIGraphicsBeginImageContext(rect.size);
[bigImage drawInRect:rect];// scales p_w_picpath to rect
img =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
把進(jìn)行壓縮處理的圖片通過(guò)zxingObjC進(jìn)行識(shí)別,就能獲取二維碼里的內(nèi)容
當(dāng)前題目:從相冊(cè)讀取本地保存的二維碼并跳轉(zhuǎn)h5鏈接
文章來(lái)源:http://jinyejixie.com/article2/ijchic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、App設(shè)計(jì)、面包屑導(dǎo)航、網(wǎng)站維護(hù)、小程序開(kāi)發(fā)、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)