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