Windows Phone 7 实战第二天 二维码QRcode
时间:2022-04-23
本文章向大家介绍Windows Phone 7 实战第二天 二维码QRcode,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
越来越多的收据具备自动对焦的拍摄功能,这也意味着这些手机可以具备条码扫描功能,手机具备条码扫描功能,可以优化购物流程,快速存储电子名片(二维码)等。
QR 码是二维条码的一种,QR 来自英文 “Quick Response” 的缩写,即快速反应的意思,源自发明者希望 QR 码可让其内容快速被解码。QR码比普通条码可储存更多资料,亦无需像普通条码般在扫描时需直线对准扫描器。 QR 码呈正方形,只有黑白两色。在4个角落的其中3个,印有较小,像“回”字的的正方图案。这 3 个是帮助解码软件定位的图案,使用者不需要对准,无论以任何角度扫描,资料仍可正确被读取。 更详细介绍。
QRCode在生活中有着多方面的应用,例如火车票上有QRCode可以用来保存信息,现在很多手机软件都提供扫描QRCode下载,而一号店网上商店在上海地铁那里开设有“墙贴超市”,路人只要用手机扫描某商品的QRCode即可下单购买等等。
这次我们要做的应用就是二维码的生成,读取器。需要一个Windows Phone 7上的类库来支持。在网上搜寻可用的条形码识别库。 这个是效果最好的了,项目在http://code.google.com/p/zxing/, 也有.NET的包。不过代码是2010的了,貌似很久没有更新了。
创建QRCode的核心代码
public static WriteableBitmap CreateBarcode()
{
WriteableBitmap wb = null;
QRCodeWriter writer = new QRCodeWriter();
ByteMatrix bitMatrix = null;
try
{
bitMatrix = writer.encode("HTTP://WWW.GOOGLE.COM", BarcodeFormat.QR_CODE, 300, 300);
wb = ConvertByteMartixToWriteableBitmap(bitMatrix);
}
catch (WriterException e)
{
}
catch (IOException e)
{
}
return wb;
}
public static WriteableBitmap ConvertByteMartixToWriteableBitmap(ByteMatrix bm)
{
WriteableBitmap wb = new WriteableBitmap(bm.Width, bm.Height);
for (int x = 0; x <= wb.PixelWidth - 1; x++)
{
for (int y = 0; y <= wb.PixelHeight - 1; y++)
{
if (bm.Array[y][x] == -1)
{
//白色
wb.Pixels[wb.PixelWidth * y + x] = BitConverter.ToInt32(BitConverter.GetBytes(0xffffffff), 0);
}
else
{
//黑色
wb.Pixels[wb.PixelWidth * y + x] = BitConverter.ToInt32(BitConverter.GetBytes(0xff000000), 0);
}
}
}
return wb;
}
- 数据分析:寻找Python最优计算性能
- 事件流处理框架NEsper for .NET
- Quartz.net官方开发指南 第五课: SimpleTrigger
- SQL Server Performance Dashboard Reports
- 添加WordPress评论输入邮箱实时显示Gravatar头像功能
- Quartz.net官方开发指南 第六课 : CronTrigger
- WordPress 中禁止某个用户在线编辑主题
- Quartz.net官方开发指南 第七课 : TriggerListeners和JobListeners
- Quartz.net官方开发指南 第八课:SchedulerListeners
- 为WordPress 后台编辑器文本模式(HTML模式)添加按钮
- 360安全扫描之WordPress 页面异常导致本地路径泄漏 的漏洞修补
- Quartz.net官方开发指南 第九课: JobStore
- 数据中心运营中出现的错误
- Quartz.net官方开发指南 第十课: 配置、资源使用以及SchedulerFactory
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 8086汇编语言——使用数据段和栈段
- JavaScript中的浏览器检测和DOM基础
- JavaScript函数和类
- 10分钟部署prometheus监控,高逼格图形展示
- R语言绘图 | 调整ggplot2坐标轴标签排列顺序
- Linux下文件字符编码格式检测和转换
- Erlang设计原则Behaviour
- Uni-app中几种常用的提示框
- 声如其闻,DuerOS中的声音播放
- JavaScript中查找指定字符串的几种方式
- Python单元测试
- 获取当前时间的标准时间,转换为年月日:时分秒的格式,以及dayjs的使用
- 8086汇编语言——双层循环的使用
- 在Linux中对文件的编码及对文件进行编码转换操作
- shutil模块,为什么说它是os模块的兄弟模块?