当前位置: 首页 > 编程日记 > 正文

Adding a QR Code Reader in Flex on Android



<?xml version="1.0" encoding="utf-8"?> <s:View xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:mx="library://ns.adobe.com/flex/mx"xmlns:s="library://ns.adobe.com/flex/spark" title="HomeView"><fx:Declarations><!-- Place non-visual elements (e.g., services, value objects) here --></fx:Declarations><fx:Script><![CDATA[import com.google.zxing.BarcodeFormat;import com.google.zxing.BinaryBitmap;import com.google.zxing.BufferedImageLuminanceSource;import com.google.zxing.DecodeHintType;import com.google.zxing.Result;import com.google.zxing.client.result.ParsedResult;import com.google.zxing.client.result.ResultParser;import com.google.zxing.common.BitMatrix;import com.google.zxing.common.ByteMatrix;import com.google.zxing.common.GlobalHistogramBinarizer;import com.google.zxing.common.flexdatatypes.HashTable;import com.google.zxing.qrcode.QRCodeReader;import com.google.zxing.qrcode.detector.Detector;import spark.events.ViewNavigatorEvent;protected var camera:Camera;private var videoDisplay:Video=new Video(360, 360);private var qrReader:QRCodeReader;private var bmd:BitmapData;private var cameraStarted:Boolean = false;protected function button1_clickHandler(event:MouseEvent):void{if (!cameraStarted) {if (Camera.isSupported){camera=Camera.getCamera();camera.setMode(360, 360, 24);videoDisplay.x = 360;sv.addChild(videoDisplay);videoDisplay.attachCamera(camera);videoDisplay.rotation=90;qrReader=new QRCodeReader;btn.label = "Scan Now";lbl.text = "";cameraStarted = true;}else {lbl.text = "no camera found";}}else {decodeSnapshot();}}public function decodeSnapshot():void{lbl.text="checking...";bmd=new BitmapData(300, 300);bmd.draw(videoDisplay, null, null, null, null, true);videoDisplay.cacheAsBitmap=true;videoDisplay.cacheAsBitmapMatrix=new Matrix;decodeBitmapData(bmd, 300, 300);bmd.dispose();bmd=null;System.gc();}public function decodeBitmapData(bmpd:BitmapData, width:int, height:int):void{var lsource:BufferedImageLuminanceSource=new BufferedImageLuminanceSource(bmpd);var bitmap:BinaryBitmap=new BinaryBitmap(new GlobalHistogramBinarizer(lsource));var ht:HashTable=null;ht=this.getAllHints();var res:Result=null;try {res=qrReader.decode(bitmap, ht);}catch (event:Error) {}if (res == null) {videoDisplay.clear();lbl.text="nothing decoded";}else {var parsedResult:ParsedResult=ResultParser.parseResult(res);lbl.text=parsedResult.getDisplayResult();sv.removeChild(videoDisplay);cameraStarted = false;btn.label = "Start Camera";}}public function getAllHints():HashTable{var ht:HashTable=new HashTable;ht.Add(DecodeHintType.POSSIBLE_FORMATS, BarcodeFormat.QR_CODE);return ht;}]]></fx:Script><s:VGroup width="100%" horizontalAlign="center" id="vg"><s:SpriteVisualElement id="sv" width="360" height="400"/><s:Label id="lbl" text="" /><s:Button id="btn" label="Start Camera" width="220" height="93" click="button1_clickHandler(event)"/></s:VGroup> </s:View>
public function decodeSnapshot():void
{lbl.text="checking...";bmd=new BitmapData(300, 300);bmd.draw(videoDisplay, null, null, null, null, true);videoDisplay.cacheAsBitmap=true;videoDisplay.cacheAsBitmapMatrix=new Matrix;decodeBitmapData(bmd, 300, 300);bmd.dispose();bmd=null;System.gc();
}public function decodeBitmapData(bmpd:BitmapData, width:int, height:int):void
{var lsource:BufferedImageLuminanceSource=new BufferedImageLuminanceSource(bmpd);var bitmap:BinaryBitmap=new BinaryBitmap(new GlobalHistogramBinarizer(lsource));var ht:HashTable=null;ht=this.getAllHints();var res:Result=null;try {res=qrReader.decode(bitmap, ht);}catch (event:Error) {}if (res == null) {videoDisplay.clear();lbl.text="nothing decoded";}else {var parsedResult:ParsedResult=ResultParser.parseResult(res);lbl.text=parsedResult.getDisplayResult();sv.removeChild(videoDisplay);cameraStarted = false;btn.label = "Start Camera";}
}public function getAllHints():HashTable
{var ht:HashTable=new HashTable;ht.Add(DecodeHintType.POSSIBLE_FORMATS, BarcodeFormat.QR_CODE);return ht;
}

if (Camera.isSupported)
{camera=Camera.getCamera();camera.setMode(360, 360, 24);videoDisplay.x = 360;sv.addChild(videoDisplay);videoDisplay.attachCamera(camera);videoDisplay.rotation=90;qrReader=new QRCodeReader;btn.label = "Scan Now";lbl.text = "";cameraStarted = true;
}
else {lbl.text = "no camera found";
}

转载于:https://www.cnblogs.com/ggzjj/p/3612850.html

相关文章:

41-高级路由:BGP AS长度:接收一切、最大AS长度、不比较AS长度

一、实验拓扑&#xff1a;二、实验要求&#xff1a;1、R4配置同上个实验&#xff1b;2、R3配置接收的路由包含最大AS长度为4&#xff1b;3、R3配置隐藏命令&#xff0c;不比较AS长度&#xff1b;4、R5配置不管收到的路由有没有包含本地AS都收入&#xff08;之前R4已经配置了4.4…

利用动态加载模板,配合ajax实现无刷新操作

关键字&#xff1a;DataGrid 动态模板 Ajax我们使用ajax实现无刷新界面时&#xff0c;对于DataGrid&#xff0c;Repeater等列表还是比较麻烦的&#xff0c;经过我的尝试&#xff0c;找出一种比较合理的方法&#xff0c;可以免除对html的加工处理&#xff0c;随时获取到数据列表…

如何利用业余时间提升自己

1、要找到心动的目标 先要找到自己如果提升哪一方面的能力&#xff0c;能够对自己的工作有较大的贡献 找到你想成为的人 你从他身上找到你想拥有的技能 你喜欢某个人的身上的某种行为表现 也是你的榜样 或者从你的爱好着手发现你在爱好中能够得到提升的点 我想发展的工作技能是…

Eclipse插件的安装方法

转自&#xff1a;http://blog.csdn.net/zhangyabinsky/article/details/7043435 Eclipse插件的安装有两种方法 &#xff1a;一个是在线安装&#xff0c;另一个就是手动安装。 在线安装比较简单&#xff1a;点击Help>>Install New Software..如图&#xff1a; 这样会跳出一…

(转)uml 静态视图依赖

依赖 依赖表示两个或多个模型元素之间语义上的关系。它只将模型元素本身连接起来而不需要用一组实例来表达它的意思。它表示了这样一种情形&#xff0c;提供者的某些变化会要求或指示依赖关系中客户的变化。 根据这个定义&#xff0c;关联和泛化都是依赖关系&#xff0c;但是它…

白盒测试各种“覆盖”间的拓扑关系及白盒用例常用要求

SC为语句覆盖 DC为分支覆盖/判定覆盖 CC为条件覆盖 CDC为判定-条件覆盖 MCC为条件组合覆盖 MC/DC修正条件/判定覆盖 BPC为基本路径覆盖

[转]实战 SQL Server 2008 数据库误删除数据的恢复

实战 SQL Server 2008 数据库误删除数据的恢复 关键字&#xff1a;SQL Server 2008, recover deleted records 今天有个朋友很着急地打电话给我&#xff0c;他用delete语句误删除了SQL Server 2008数据库中两个表中的所有记录&#xff0c;而这个数据库之前没有任何备份。让我帮…

水面加上了Perlin Noise

通过用躁点扰动法线图&#xff0c;水面显得更有质感Real time Shadow 转载于:https://www.cnblogs.com/badkeeper/articles/495443.html

事件冒泡和阻止事件冒泡

事件冒泡 当事件发生后&#xff0c;这个事件就要开始传播(从里到外或者从外向里)。为什么要传播呢&#xff1f;因为事件源本身&#xff08;可能&#xff09;并没有处理事件的能力&#xff0c;即处理事件的函数&#xff08;方法&#xff09;并未绑定在该事件源上。例如我们点击一…

不使用powerdesigner手工绘制用例图例题详解

文章目录1.题目2.分析过程3.结果4.需要注意的细节5.本题易错的地方1.题目 根据以下场景绘制用例图。 某公司预开发一个反馈系统作为其CRM&#xff08;客户关系管理&#xff09;的一部分。系统基本功能描述如下&#xff1a; &#xff08;1&#xff09;客户可通过B/S系统在该公司…

zoj 1204 Additive equations

ACCEPT acm作业http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId204因为老师是在集合那里要我们做这道题。所以我很是天真的就以为要用集合做&#xff0c;结果发现网上都是用数组简单明了地实现了&#xff0c;显得我的代码&#xff0c;特么地超级恶心&#xff01;…

c#中的静态类

如果一个类中的所有方法都是类方法&#xff0c;那么就用static来定义这些方法&#xff0c;如果这个类又要增加一些属性&#xff0c;以供这些方法使用&#xff0c;那么就要使用static来定义这些属性&#xff0c;如果又要给这些属性初始化&#xff0c;就要使用静态构造函数&#…

golang flag简单用法

版权声明&#xff1a;本文可能为博主原创文章&#xff0c;若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/80972643 package mainimport ("flag""strings""os""fmt" )var ARGS stringfunc main() {var uptime…

四种JOIN简单实例

前提 现在有班级表class和学生表stud 各有两条数据 共同的属性是classId class表 stud表 可以看到&#xff1a;班级表无1班&#xff0c;学生表3班无学生 1.INNER JOIN 在表中存在至少一个匹配时返回行。和JOIN相同 或者 2.LEFT JOIN 从左表&#xff08;table1&#xff09…

Linux运维人员-服务器组成硬件基础

第1章 1.1关于运维人员 1.1.1 运维的职责 数据不能丢 网站7*24小时运行 保证用户体验&#xff08;用户体验要好&#xff09; 1.1.2 运维原则 简单、易用、高效 简单、粗暴 1.2 服务器 1.2.1服务器尺寸 服务器厚度&#xff08;厚度&#xff09; 服务器尺寸单位为U 1U4.45cm 1…

K - 近邻算法

K - 近邻算法&#xff08;KNN&#xff09;&#xff0c;他的工作原理&#xff1a;存在一个样本数据集合&#xff0c;也称为训练样本集&#xff0c;并且样本集合中每个数据都存在标签&#xff0c;即我们知道样本集合中每一个数据与所属分类的对于关系。输入没有标签的新数据后&am…

必须掌握的八个DOS命令 [转]

一&#xff0c;ping    它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说&#xff0c;ping命令是第一个必须掌握的DOS命令&#xff0c;它所利用的原理是这样的&#xff1a;网络上的机器都有唯一确定的IP地址&#xff0c;我们给目标…

SQL,NoSQL优缺点总结

SQL优点&#xff1a; 保持数据一致性&#xff08;最大优势&#xff09; 由于以标准化为前提&#xff0c;数据更新的开销很小 可以进行 Join 等复杂查询 SQL不足&#xff1a; 大量数据的写入处理 为有数据更新的表做索引或表结构&#xff08;schema&#xff09;变更 字段不固定…

iOS常用动画 类封装

//这是一个很好的动画封装类 很容易明白很详细 和大家分享 // CoreAnimationEffect.h // CoreAnimationEffect // // Created by VincentXue on 13-1-19. // Copyright (c) 2013年 VincentXue. All rights reserved. //#import /**! 导入QuartzCore.framework** Exampl…

规范化制度保障安擎高品质产品

企业的制度规范是公司管理的依据和准则。一套科学完整的管理制度&#xff0c;有利于维护工作秩序&#xff0c;提高工作效率&#xff0c;也可以保证企业的正常运转和职工的合法利益不受侵害。据内部核算&#xff0c;安擎计算机有限公司在2017年十二次月度产品测试中&#xff0c;…

带进度条的ASP无组件断点续传下载代码

<%LANGUAGE"VBSCRIPT" CODEPAGE"936"%><%Option Explicit%><% 带进度条的ASP无组件断点续传下载简介&#xff1a; 1)利用xmlhttp方式 2)无组件 3)异步方式获取&#xff0c;节省服务器资源 4)服务器到服务器的文件传送。(当然&am…

塔式、机架式、刀片式服务器比较

塔式机架式刀片式优点单个成本低&#xff1b;扩展能力和散热能力好&#xff1b;可以配置多路处理器、多根内存、多块硬盘、多个冗余电源和散热风扇相对于塔式大大节省了空间占用&#xff0c;使布线、管理更为简洁&#xff1b;节省了机房托管费用&#xff1b;平衡了性能与空间扩…

Flume-0.9.4数据插入HBase-0.96

来自&#xff1a;http://blog.csdn.net/iam333/article/details/18770977 最近由于业务需要&#xff0c;需要将flume的数据插入HBase-0.96,利用flume的实时日志收集&#xff0c;实现数据的实时存储。正如前文所 述&#xff0c;flume-ng即flume-1.4.0版本和hbase-0.96结合相对比…

卡壳了~~~ 解决了~~~My Site创建成功了.....

没想到解决这个问题如此简单就是把SharePoint Products and Technologies Configuration Wizard运行一遍&#xff0c;一切都修复了&#xff0c;哈哈~~~快下班了&#xff0c;也没过多测试&#xff0c;似乎没有损失什么数据。 转载于:https://www.cnblogs.com/booolee/archive/20…

Linux 配置开机自启 和 修改环境变量

【 操作系统 Centos7 】 一&#xff0c;开机自动启动的配置 1&#xff0c;赋予 /etc/rc.local 的执行权限 > chmod x /etc/rc.local 2&#xff0c;在 /etc/rc.local 在文件末尾编写要执行的脚本 3&#xff0c;注意写在这个文件中的脚本不要使用相对路径 二&#xff0c;环境变…

无线传感器网络WSN技术、协议、距离汇总

技术协议距离WMANIEEE802.16五公里内WLANIEEE802.11几公里内WPAN蓝牙IEEE802.15.4 紫蜂IEEE802.15.110m内

IISApp -a查找对应的AppPool

cmd下运行IISApp -a可以查找出来每个w3wp.exe对应的应用程序池 [name:IISApp To AppPool][tags:IIS] [From AlphaWu.Blog]转载于:https://www.cnblogs.com/AlphaWu/archive/2006/11/27/574390.html

ZKFC服务异常:Parent znode does not exist.

昨天搭建了一套hadoop集群&#xff0c;今天发现两个namenode的zkfc服务起不来&#xff0c;在zkfc日志中发现如下所示的信息&#xff1a;Unable to start failover controller. Parent znode does not exist../bin/zkCli.sh -server master1ls /没有看到/hadoop-ha解决方法&…

数学工具WZgrapher

之前说了mathGV&#xff0c;其实还有一个不错类似软件WZgrapher&#xff0c;不仅可以画函数图&#xff0c;还可以微积分。 截图如下&#xff1a; 转载于:https://www.cnblogs.com/CodeWorkerLiMing/p/3632778.html