二维码扫描器反应迟钝是什么原因,是什么原因?

有的商品资料没上上去,所以就扫描不出,二维码不是辨认真假的有力途径, 评论(0)00 翼天使
给宝宝买了包爹地宝贝尿不湿,扫不出,什么原因?/z/q.htm
其实我想问二维码保存的信息多种多样,而这可能需要各种各样的软件来识别。那面对一个陌生的二维码,我怎么才能知道需要安装什么软件来识别?比如我上网经常遇到二维码下.../question/
单位新添了气动标识机在曲轴表面刻印二维码,可是用手持式扫描枪不能都扫描出来,不知道是什么原因 分享到:
13:36 网友采纳 很简单,这种二维码不是普通扫描枪可以.../question/.html
我终于明白为什么我的二维码扫不出了[复制链接] Negative 发表于
21:41|显示全部楼层|阅读模式 我终于明白为什么我的二维码扫不出了 因为像素不给力…… 这人还没添.../thread--1.html
为什么我买的化妆品用手机二维码扫不出来 请问我在香港海港城里买的一套迪奥的化妆品'为什么我用4s手机扫描二维码都解析不出来呢?会不会假的?全是外语都看不懂'特纠结/q/9666
二维码扫不出来 ,会不会是假的 卖家回复: 您好!商家所有商品都保证是正品,支持专柜验货,您觉得不放心的话,建议您到商场专柜请阿迪销售员验货,如有假货,假一赔十,感谢您对京.../consultation/-.html
二维码扫描不出来是不是说明产品是仿冒的 不是,没有相应有可以能是你的网络问题,或者是查查的服务器问题.最近我查查好像不好用了.试试快拍购物/q/5336
也有荔枝纹低帮。二维码手机扫不出来的,因为你手机根本不能完全对焦,太小而且不平整。所以店员跟你说能扫只不过是表示真品,但其实都知道扫不出来,要用什么扫描我也不知道.../p/
您的二维码扫描不出来可能是有以下问题造成: (1)二维码包含的信息太长,导致二维码识别度太低扫不出来,建议文本二维码的文字数量不超过150字(低端 手机也能扫描) (2)美化后....cn/b/5aRkR47C0aj.html
下面,我们就来看看二维码扫不出来的原因。 1、好比看一行文字,光线不足的时候你肯定看不清楚上面写的是什么。同样的情况下,摄像头也无法捕捉清晰的二维码,这时可以通过开.../news/digi/sj/233.html用Swift开发二维码扫描器教程
招聘信息:
(原文:&作者:Simon Ng 译者:xiaoying )我相信大多数人都知道二维码(QR code)是什么,如果你对这个概念还不甚了解,那么看看下边那张图就知道了。二维码是在二维平面里展示的一种条形码,开发者是Denso。最初它只是在制造业用来进行零部件跟踪,但是随着时间的发展,今天二维码已经在消费领域变得非常流行,在消费领域二维码通常会被用来编码一个登录页面或者推广页面的URL。与传统的条形码不同的是,二维码在水平和垂直方向上都可以存储信息,这样做的直接好处就是在二维码里可以同时以数字和字符的格式存储大量的信息。但是在这里我不会去探讨太多二维码的技术细节。如果感兴趣,可以去二维码的了解更多信息。最近几年,二维码的应用不断的在增多。它可能出现在杂志、报纸、广告、广告板甚至出现在名片上。作为一个iOS开发者,你可能在想如何才能让你的应用具备识别二维码的功能呢。不久之前,Gabriel写了一篇很好的。在本篇文章里,我们将使用Swift构建一个相似功能的二维码扫描器应用。在阅读完这篇文章之后,你就会了解怎么使用AVFoundation框架实时地去检测和识别二维码。那么我们这就开工了。Demo应用我们要构建的这个demo应用相当的简单且直观,但是在开始讨论这个demo应用之前,我们要知道,在iOS里任何条码的扫描都是完全基于视频捕捉的,这很重要,这也是为什么我们要在含有二维码扫描的应用里加入AVFoundation框架。记住这一点,会对理解整个章节很有帮助。那么,这个demo应用是如果工作的呢?看一下下面这张截图,这就是这个应用的UI的样子。这个应用其实就像一个普通的视频捕捉应用,只是没有录像功能。当应用启动之后,它利用iPhone的摄像头来对准二维码,然后二维码会自动被识别,解码后的信息(例如,一个URL)就会显示在屏幕的下方。我已经预先创建好了一个模板工程,并将storyboard和显示信息的label都帮你连接好了,你可以先从下载这个工程。使用AVFoundation框架在上面下载的模板工程里,我已经创建了这个应用的用户接口。在UI界面的那个label会被用来显示二维码解码后的信息,这个label已经和ViewController里的messageLabel这个属性进行绑定。就像之前说过的,我们要依靠AVFoundation框架来实现二维码扫描的功能,所以首先,打开ViewController.swift文件,导入框架:import&AVFoundation然后,我们需要实现AVCaptureMetadataOutputObjectsDelegate协议,我们一会儿再说这个协议,现在,只要在代码里加上这一行:class&ViewController:&UIViewController,&AVCaptureMetadataOutputObjectsDelegate在继续之前,先在ViewController类里定义一下变量,我们之后将会挨个讲解它们:var&captureSession:AVCaptureSession?
var&videoPreviewLayer:AVCaptureVideoPreviewLayer?
var&qrCodeFrameView:UIView?实现视频捕获就像在前面一段提到的,二维码的读取完全是基于视频捕获的,那么为了实时捕获视频,我们只需要以合适的AVCaptureDevice对象作为输入参数去实例化一个AVCaptureSession对象。在ViewController类的viewDidLoad方法中加入如下代码://&Get&an&instance&of&the&AVCaptureDevice&class&to&initialize&a&device&object&and&provide&the&video
//&as&the&media&type&parameter.
let&captureDevice&=&AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
//&Get&an&instance&of&the&AVCaptureDeviceInput&class&using&the&previous&device&object.
var&error:NSError?
let&input:&AnyObject!&=&AVCaptureDeviceInput.deviceInputWithDevice(captureDevice,&error:&&error)
if&(error&!=&nil)&{
&&&&//&If&any&error&occurs,&simply&log&the&description&of&it&and&don't&continue&any&more.
&&&&println("\(error?.localizedDescription)")
&&&&return
//&Initialize&the&captureSession&object.
captureSession&=&AVCaptureSession()
//&Set&the&input&device&on&the&capture&session.
captureSession?.addInput(input&as&AVCaptureInput)一个AVCaptureDevice对象代表了一个物理上的视频设备,在这里我们配置了一个默认的视频设备。由于我们将要捕获视频数据,所以我们调用defaultDeviceWithMediaType方法和AVMediaTypeVideo来得到视频设备。我们以视频设备为输入参数去实例化了一个AVCaptureSession会话,用它来实现实时视频捕获。AVCaptureSession会话是用来管理视频数据流从输入设备传送到输出端的会话过程的。在这里,这个会话的输出端被设定为一个AVCaptureMetaDataOutput对象,而这个AVCaptureMetaDataOutput类是二维码读取的核心组成部分,它和AVCaptureMetadataOutputObjectsDelegate协议一起,将被用来获取从输入设备传过来的元数据(就是摄像头捕获的二维码)然后将它们翻译为人类可读的格式。如果你觉得这些听起来很奇怪或者你现在根本听不懂,不要担心,一会儿这些都会变得很清晰。现在要做的就是继续将下面的代码加入viewDidLoad方法中去://&Initialize&a&AVCaptureMetadataOutput&object&and&set&it&as&the&output&device&to&the&capture&session.
let&captureMetadataOutput&=&AVCaptureMetadataOutput()
captureSession?.addOutput(captureMetadataOutput)然后,接着把下面的代码也加进去。在这里我们把self设置为captureMetadataOutput对象的代理。这就是为什么ORReaderViewController类要实现AVCaptureMetadataOutputObjectsDelegate协议,当新的元数据对象被捕获到时,它们就被转发到这个代理的方法中去。根据苹果的文档,这个队列必须是串行的,所以我们直接使用dispatch_get_main_queue()获取默认的GCD的串行执行队列。//&Set&delegate&and&use&the&default&dispatch&queue&to&execute&the&call&back
captureMetadataOutput.setMetadataObjectsDelegate(self,&queue:&dispatch_get_main_queue())
captureMetadataOutput.metadataObjectTypes&=&[AVMetadataObjectTypeQRCode]metadataObjectTypes属性也非常重要,因为它的值会被用来判定整个应用程序对哪类元数据感兴趣。在这里我们将它指定为AVMetadataObjectTypeQRCode。现在我们完成了对AVCaptureMetadataOutput对象的设置,我们还需要在屏幕上显示摄像头捕获到的图像,这可以通过AVCaptureVideoPreviewLayer(其实就是一个CALayer)来完成。然后使用这个预览图层和图像信息捕获会话来显示视频,这个预览图层要作为当前视图的子图层添加进去,下面是相关代码://&Initialize&the&video&preview&layer&and&add&it&as&a&sublayer&to&the&viewPreview&view's&layer.
videoPreviewLayer&=&AVCaptureVideoPreviewLayer(session:&captureSession)
videoPreviewLayer?.videoGravity&=&AVLayerVideoGravityResizeAspectFill
videoPreviewLayer?.frame&=&view.layer.bounds
view.layer.addSublayer(videoPreviewLayer)我们终于能捕获视频了,这里要调用视频捕获回话的startRunning方法来启动它://&Start&video&capture.
captureSession?.startRunning()如果你编译运行这个应用,它应该在启动之后就开始捕获视频了。但是,等等,好像下面显示消息的label不见了。可以添加如下代码来让它显示://&Move&the&message&label&to&the&top&view
view.bringSubviewToFront(messageLabel)修改后重新运行程序,label上这是应该会显示“No QR code is detected”(没有检测到二维码)。实现二维码读取好了,现在这个应用看起来已经像一个视频捕获应用了,那么怎么样它才能扫描二维码并且翻译成有意义的明文呢?这个应用本身已经具备了检测二维码的能力,只是我们还不知道,这里是我们将要对应用做的改变:1. 当检测到二维码时,应用会用一个绿色方框圈住二维码。 2. 这个二维码将被解码,然后将解码的信息显示在屏幕的下方。初始化绿色方框为了圈住二维码,我们首先创建一个UIView对象,并将它的边框设为绿色。在viewDidLoad方法中加入如下代码://&Initialize&QR&Code&Frame&to&highlight&the&QR&code
qrCodeFrameView&=&UIView()
qrCodeFrameView?.layer.borderColor&=&UIColor.greenColor().CGColor
qrCodeFrameView?.layer.borderWidth&=&2
view.addSubview(qrCodeFrameView!)
view.bringSubviewToFront(qrCodeFrameView!)现在这个UIView是隐形的,因为它的尺寸默认会被设成零。之后,当检测到二维码时,我们再改变它的尺寸,那么它就会变成一个绿色的方框了。解码二维码像之前提到的,当AVCaptureMetadataOutput对象识别出来一个二维码,下边的方法(AVCaptureMetadataOutputObjectsDelegate的代理方法)就会被调用:optional&func&captureOutput(_&captureOutput:&
AVCaptureOutput!,?&&&didOutputMetadataObjects&metadataObjects:&
[AnyObject]!,?&fromConnection&connection:&AVCaptureConnection!)到现在为止我们还没有实现这个方法,这就是为什么我们不能翻译这个二维码。为了进一步捕获并且解码二维码,我们需要实现这个方法,对元数据对象进行进一步操作。下边是相关代码:func&captureOutput(captureOutput:&AVCaptureOutput!,&
didOutputMetadataObjects&metadataObjects:&[AnyObject]!,&fromConnection&
connection:&AVCaptureConnection!)&{
&&&&//&Check&if&the&metadataObjects&array&is&not&nil&and&it&contains&at&least&one&object.
&&&&if&metadataObjects&==&nil&||&metadataObjects.count&==&0&{
&&&&&&&&qrCodeFrameView?.frame&=&CGRectZero
&&&&&&&&messageLabel.text&=&"No&QR&code&is&detected"
&&&&&&&&return
&&&&//&Get&the&metadata&object.
&&&&let&metadataObj&=&metadataObjects[0]&as&AVMetadataMachineReadableCodeObject
&&&&if&metadataObj.type&==&AVMetadataObjectTypeQRCode&{
&&&&&&&&//&If&the&found&metadata&is&equal&to&the&QR&code&metadata&then&update&the&status&label's&text&and&set&the&bounds
&&&&&&&&let&barCodeObject&=&
videoPreviewLayer?.transformedMetadataObjectForMetadataObject(metadataObj
&as&AVMetadataMachineReadableCodeObject)&as&
AVMetadataMachineReadableCodeObject
&&&&&&&&qrCodeFrameView?.frame&=&barCodeObject.
&&&&&&&&if&metadataObj.stringValue&!=&nil&{
&&&&&&&&&&&&messageLabel.text&=&metadataObj.stringValue
}这个方法的第二个参数(就是metadataObjects)是一个Array数组,它包含了所有已被读取的元数据对象。当然,首先要做的就是要判断这个数组是否为空。如果为空,我们就要重置qrCodeFrameView的尺寸为零,并且把messageLabel的内容设为默认内容。如果数组里有元数据,我们就去判断它是否是二维码。如果是,我们接着就去找到二维码的边界。这几行代码用来设置圈住二维码的绿色方框。通过调用viewPreviewLayer的transformedMetadataObjectForMetadataObject方法,元数据对象就会被转化成图层的坐标。通过这个坐标,我们可以获取二维码的边界并构建绿色方框。let&barCodeObject&=&
videoPreviewLayer?.transformedMetadataObjectForMetadataObject(metadataObj
&as&AVMetadataMachineReadableCodeObject)&as&
AVMetadataMachineReadableCodeObject
qrCodeFrameView?.frame&=&barCodeObject.bounds最后,我们对二维码进行解码,得到人类可读信息。解码信息可以用过访问AVMetadataMachineReadableCodeObject 对象的stringValue属性得到,非常简单。现在,一切准备就绪,点击Run按钮来编译并在真实设备上运行这个应用。软件打开后,对着一个二维码,这个应用就会马上检测到并且完成解码。提示:你也可以通过来生成你自己的二维码,非常简单。总结现在,通过使用AVFoundation框架去创建了一个二维码扫描应用变得前所未有的简单。另外除了二维码,这个框架还支持很多别的条码类别,例如Code39,Code128,Aztec,和PDF417。大家可以尝试修改这个Xcode工程来实现这些类型的条码扫描。在你可以下载本文所述的完整的工程代码,仅供参考。(本文为CocoaChina组织翻译,本译文权利归译者所有,未经允许禁止转载。)
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量13517点击量10889点击量9406点击量9214点击量8582点击量6795点击量6164点击量6047点击量5748
&2015 Chukong Technologies,Inc.
京公网安备89谨防在用手机扫描“二维码”后被骗
当前位置:
谨防在用手机扫描“二维码”后被骗发布日期:
谨防在用手机扫描&二维码&后被骗
不经意间,杂志、产物宣传页、户外广告、宣传海报、报纸、网站等多个媒体领域都印上了马赛克似的二维码,也渗透了与我们日常生活息息相关的身份识别、车船票、网络交友、电子购物、名片短信、公文发布等方面。二维码带给市民便利的同时,也带来不少&烦恼&。警方提醒,二维码技术已成为手机病毒、钓鱼网站传播的新渠道之一,市民在扫描二维码时,应提高警惕防止被骗。
1 、扫描二维码为何会被骗。
&&&近期,媒体上关于使用二维码导致话费丢失或中毒的报道不少。市民小刘不幸也中招了,他在网上看到一家餐馆五折的优惠券,觉得很合适就扫了二维码,结果手机中毒了。现在二维码生成软件很普遍,制作二维码基本没有门槛。一些不法分子就盯住了时下年轻人热衷的电子优惠券、软件下载、网络支付等消费方式,将带有病毒、木马程序、钓鱼软件或者手机吸费软件的网页或者应用网址生成一个二维码,伪装成打折促销、中奖、优惠、热门软件或视频,诱导用户扫描。有些消费者看到二维码后,马上拿起手机拍一拍、扫一扫,在手机联网状态下,就会中毒,轻者弹出广告链接、下载垃圾软件,重者中病毒、木马后恶意发送收费短信、消耗上网流量、泄露手机里存储的通讯录、银行卡密码等隐私信息,更有甚者被虚假中奖、虚假银行、虚假充值、虚假购物等各类钓鱼网站欺骗,损失惨重。
2 、如何识别二维码骗局?
不要盲目扫描来历不明二维码的,在扫码前一定要确认该二维码是否出自知名正规的网站,特别是路边广告、电梯广告和不明网站上的二维码,需要下载和支付的二维码链接更是要加倍小心,注意看清楚提示信息,不能随意点击&确定&或者&同意&。使用的二维码识别软件要经过官方认证,从正规渠道获得,即使IOS、安卓等平台商店中也会出现一些假冒的、挂马的应用,一定要注意甄别,不清楚用途的软件不要安装,避免因为软件本身挂马而带来安全隐患。还要在智能手机中安装防病毒、防木马等安全防护软件,并进行有效地配置和定期检查,一旦发现有害链接,能够及时地提醒、阻止甚至清除。
3 、出了问题怎么办?
手机如果因为访问恶意二维码等方式中了病毒、挂上了木马、安装了吸费软件或者被窃取隐私信息,往往会比较隐蔽,用户在不知不觉中就中了招,但也会有些蛛丝马迹可循,比如:开机困难或者经常死机,按键反应迟钝,电池耗电量增加,运行的程序中出现了未知的或者不该运行的程序,莫名其妙弹出网页或者关闭程序,话费不正常增加,有不明的短信息记录等等,这些都可能意味着手机出现了异常,而且很有可能染上了病毒或者挂上了木马。一旦发现异常,建议用户先直接关掉未知的或者异常的应用程序,下载安装可信的第三方的安全防护软件对手机进行彻底的查杀,卸载不必要的、异常的应用,对于话费或者网上银行要尽快通过其他方式联系运营商或者银行,登录查询、中止交易、及时修改密码,如有经济损失应尽快向警方、运营商、消费者协会等部门报警,最大限度地减少损失。二维码扫描扫不出价格是什么原因_百度知道
二维码扫描扫不出价格是什么原因
提问者采纳
先用别的带二维码的常用的东西检测下软件好使不,好使的话就是你扫的那个东西有问题,最少也是二维码没注册你好
其他类似问题
为您推荐:
二维码扫描的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁您的举报已经提交成功,我们将尽快处理,谢谢!
重新开机试一试,联系
下载微信就可以
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'

我要回帖

更多关于 二维码扫描器 的文章

 

随机推荐