在常見的條形碼中,UPC-A碼長度是12位的,EAN13碼長度是13位的,蘋果將UPC-A條碼和EAN13條碼放到了一起不做區(qū)分!UPC-A條碼實(shí)際上是EAN-13條碼的子集。如果一個(gè)EAN-13條碼的第一位數(shù)字是0,那么這個(gè)條碼既是EAN-13碼也同樣是是UPC-A碼(去掉開頭的0)。
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比二連浩特網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式二連浩特網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋二連浩特地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。
解決方法:以0開頭的EAN13碼實(shí)際上就是UPC-A碼在前面補(bǔ)了一個(gè)0,在AVFoundation掃描得到的結(jié)果里只需要判斷條碼的類別是否AVMetadataObjectTypeEAN13Code并且是否以0開頭,如果是的話就把第一位的0直接刪掉就好啦~
打開微信掃一掃
現(xiàn)在手機(jī)很多軟件都有掃描條形碼功能,只要打開功能對準(zhǔn)條形碼掃描即可。首先打開手機(jī)中的微信,點(diǎn)擊發(fā)現(xiàn)。點(diǎn)擊掃一掃,會出現(xiàn)一個(gè)小框,將框?qū)?zhǔn)條形碼,開始掃描。
很快手機(jī)就會獲取這個(gè)條形碼的信息,這樣條形碼的信息就顯示在手機(jī)屏幕上了。條形碼(barcode)是將寬度不等的多個(gè)黑條和空白,按照一定的編碼規(guī)則排列,用以表達(dá)一組信息的圖形標(biāo)識符。
常見的條形碼是由反射率相差很大的黑條(簡稱條)和白條(簡稱空)排成的平行線圖案。條形碼可以標(biāo)出物品的生產(chǎn)國、制造廠家、商品名稱、生產(chǎn)日期、圖書分類號、郵件起止地點(diǎn)、類別、日期等許多信息,因而在商品流通、圖書管理、郵政管理、銀行系統(tǒng)等許多領(lǐng)域都得到廣泛的應(yīng)用。
ZBar也是一個(gè)常用的二維碼識別,并分別提供了iOS和Android的SDK可供使用,最終我選擇了ZBar進(jìn)行二維碼識別,它的注釋清晰,便于使用。 ZBar為我們提供了兩種使用方式,一種是直接調(diào)用ZBar提供的ZBarReaderViewController打開一個(gè)掃描界面
官方提供的接口非常簡單,代碼如下:
@interface ViewController ()AVCaptureMetadataOutputObjectsDelegate//用于處理采集信息的代理
{
AVCaptureSession * session;//輸入輸出的中間橋梁
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//獲取攝像設(shè)備
AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
//創(chuàng)建輸入流
AVCaptureDeviceInput * input = [AVCaptureDeviceInput deviceInputWithDevice:device error:nil];
//創(chuàng)建輸出流
AVCaptureMetadataOutput * output = [[AVCaptureMetadataOutput alloc]init];
//設(shè)置代理 在主線程里刷新
[output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];
//初始化鏈接對象
session = [[AVCaptureSession alloc]init];
//高質(zhì)量采集率
[session setSessionPreset:AVCaptureSessionPresetHigh];
[session addInput:input];
[session addOutput:output];
//設(shè)置掃碼支持的編碼格式(如下設(shè)置條形碼和二維碼兼容)
output.metadataObjectTypes=@[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code];
AVCaptureVideoPreviewLayer * layer = [AVCaptureVideoPreviewLayer layerWithSession:session];
layer.videoGravity=AVLayerVideoGravityResizeAspectFill;
layer.frame=self.view.layer.bounds;
[self.view.layer insertSublayer:layer atIndex:0];
//開始捕獲
[session startRunning];
}
之后我們的UI上已經(jīng)可以看到攝像頭捕獲的內(nèi)容,只要實(shí)現(xiàn)代理中的方法,就可以完成二維碼條形碼的掃描:
-(void)captureOutput:(AVCaptureOutput *)captureOutput didOutputMetadataObjects:(NSArray *)metadataObjects fromConnection:(AVCaptureConnection *)connection{
if (metadataObjects.count0) {
//[session stopRunning];
AVMetadataMachineReadableCodeObject * metadataObject = [metadataObjects objectAtIndex : 0 ];
//輸出掃描字符串
NSLog(@"%@",metadataObject.stringValue);
}
}
是可以的,不過你需要借助軟件,有的條碼是需要軟件才能讀取到條碼的數(shù)據(jù)的。
1、下載第三方軟件,如微信、QQ、快拍二維碼等。
2、打開網(wǎng)絡(luò)連接。
3、打開軟件,將攝像頭對準(zhǔn)你要掃描的條形碼和二維碼即可。
條形碼(barcode)是將寬度不等的多個(gè)黑條和空白,按照一定的編碼規(guī)則排列,用以表達(dá)一組信息的圖形標(biāo)識符。常見的條形碼是由反射率相差很大的黑條(簡稱條)和白條(簡稱空)排成的平行線圖案。條形碼可以標(biāo)出物品的生產(chǎn)國、制造廠家、商品名稱、生產(chǎn)日期、圖書分類號、郵件起止地點(diǎn)、類別、日期等許多信息,因而在商品流通、圖書管理、郵政管理、銀行系統(tǒng)等許多領(lǐng)域都得到廣泛的應(yīng)用。
二維條碼/二維碼(2-dimensional
bar
code)是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的黑白相間的圖形記錄數(shù)據(jù)符號信息的;在代碼編制上巧妙地利用構(gòu)成計(jì)算機(jī)內(nèi)部邏輯基礎(chǔ)的“0”、“1”比特流的概念,使用若干個(gè)與二進(jìn)制相對應(yīng)的幾何形體來表示文字?jǐn)?shù)值信息,通過圖象輸入設(shè)備或光電掃描設(shè)備自動識讀以實(shí)現(xiàn)信息自動處理:它具有條碼技術(shù)的一些共性:每種碼制有其特定的字符集;每個(gè)字符占有一定的寬度;具有一定的校驗(yàn)功能等。同時(shí)還具有對不同行的信息自動識別功能、及處理圖形旋轉(zhuǎn)變化點(diǎn)。
標(biāo)題名稱:ios開發(fā)掃描條形碼,Ios掃描二維碼
分享路徑:http://chinadenli.net/article20/dsdiico.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、網(wǎng)站建設(shè)、網(wǎng)站改版、用戶體驗(yàn)、服務(wù)器托管、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)