Windows phone 8 二维码生成与扫描
1. 二维码的生成
二维码生成用到了一个第三方的插件(zxing.wp8.0)
根据指定的信息,生成对应的二维码。
代码很简单:
bool falg=tbk.Text==""?false:true;
if (falg==false)
{
MessageBox.Show("message lose, can't produce!");
return;
}
EncodingOptions options;//包含一些编码、大小等的设置
BarcodeWriter write = null;//用来生成二维码,对应的BarcodeReader用来解码
options = new QrCodeEncodingOptions
{
DisableECI = true,
CharacterSet = "UTF-8",
Width = 300,
Height = 300,
Margin = 3
};
write = new BarcodeWriter();
write.Format = BarcodeFormat.QR_CODE;
write.Options = options;
WriteableBitmap bitmap = write.Write(tbk.Text.Trim());
imgCode.Source = bitmap;
下面看下二维码的扫描(同样用的一个第三方的插件 Silverlight_ZXing_Core)
直接上代码
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
_reader = new QRCodeReader();
_photoCamera = new PhotoCamera();
_photoCamera.Initialized += new EventHandler<CameraOperationCompletedEventArgs>(cam_Initialized); _videoBrush.SetSource(_photoCamera);
BarCodeRectInitial();
base.OnNavigatedTo(e);
}
//释放资源
protected override void OnNavigatingFrom(System.Windows.Navigation.NavigatingCancelEventArgs e)
{
if (_photoCamera != null)
{
_timer.Stop();
_photoCamera.CancelFocus();
_photoCamera.Dispose();
}
base.OnNavigatingFrom(e);
}
//初始化
void cam_Initialized(object sender, CameraOperationCompletedEventArgs e)
{
int width = Convert.ToInt32(_photoCamera.PreviewResolution.Width);
int height = Convert.ToInt32(_photoCamera.PreviewResolution.Height);
_luminance = new PhotoCameraLuminanceSource(width, height);
Dispatcher.BeginInvoke(() =>
{
_previewTransform.Rotation = _photoCamera.Orientation;
_timer.Start();
});
_photoCamera.FlashMode = FlashMode.Auto;
_photoCamera.Focus();
}
public void SetStillPicture()
{
int width = Convert.ToInt32(_photoCamera.PreviewResolution.Width);
int height = Convert.ToInt32(_photoCamera.PreviewResolution.Height);
int[] PreviewBuffer = new int[width * height];
_photoCamera.GetPreviewBufferArgb32(PreviewBuffer);
WriteableBitmap wb = new WriteableBitmap(width, height);
PreviewBuffer.CopyTo(wb.Pixels, 0);
MemoryStream ms = new MemoryStream();
wb.SaveJpeg(ms, wb.PixelWidth, wb.PixelHeight, 0, 80);
ms.Seek(0, SeekOrigin.Begin);
BitmapImage bi = new BitmapImage();
bi.SetSource(ms);
ImageBrush still = new ImageBrush();
still.ImageSource = bi;
frame.Fill = still;
still.RelativeTransform = new CompositeTransform() { CenterX = 0.5, CenterY = 0.5, Rotation = _photoCamera.Orientation };
}
private void ScanPreviewBuffer()
{
try
{
_photoCamera.GetPreviewBufferY(_luminance.PreviewBufferY);
var binarizer = new HybridBinarizer(_luminance);
var binBitmap = new BinaryBitmap(binarizer);
Result result = _reader.decode(binBitmap);
if (result != null)
{
_timer.Stop();
SetStillPicture();
BarCodeRectSuccess();
Dispatcher.BeginInvoke(() =>
{
//读取成功,结果存放在result.Text
NavigationService.Navigate(new Uri("/ScanResult.xaml?result=" + result.Text, UriKind.Relative));
});
}
else
{
_photoCamera.Focus();
}
}
catch
{ }
}
转载于:https://www.cnblogs.com/xiaogui9527/p/3459415.html
Windows phone 8 二维码生成与扫描相关推荐
- 微信公众平台----带参数二维码生成和扫描事件
原文:微信公众平台----带参数二维码生成和扫描事件 摘要: 账号管理----生成带参数的二维码 消息管理----接收消息----接收事件推送 为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众 ...
- 苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案
苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案 参考文章: (1)苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案 (2)https://www.cnblogs.com/CoderEYL ...
- 二维码生成、扫描、图片识别(Zxing)
这样的例子虽然已经很多了,不过我在网上浏览了一圈,也没找到几个图库二维码图片识别例子,好的算法识别率才高.这里有一个好点的算法,算法不是我写的,只是作为整理记录,给众多安卓开发者一个方便.demo的U ...
- Android开发——Android中的二维码生成与扫描
0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描.本篇旨在帮助有需求的同学快速完成二维 ...
- Android之二维码生成与扫描
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51260428 本文出自:[顾林海的博客] ##前言 月底离开公司,准备 ...
- 转【微信小程序 四】二维码生成/扫描二维码
原文:https://blog.csdn.net/xbw12138/article/details/75213274 前端 二维码生成 二维码要求:每分钟刷新一次,模拟了个鸡肋,添加了个按分钟显示 ...
- iOS开发二维码生成和扫描
准备工作 导入<CoreImage/CoreImage.h>,生成二维码用 导入<AVFoundation/AVFoundation.h>,读取二维码用 设置代理协议AVCap ...
- iOS - 二维码生成、扫描及页面跳转
主要内容的介绍 普通二维码生成 彩色二维码生成 带有小图标二维码生成 扫描二维码的自定义 是否开启闪光灯 从相册中获取二维码 扫描成功之后提示音 扫描成功之后的界面之间的跳转 扫描二维码界面采取了微信 ...
- Android中的二维码生成与扫描
转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51260428 本文出自:[顾林海的博客] 前言 月底离开公司,准备月底 ...
最新文章
- 在Python函数内部赋值操作是新的变量而不是全局变量
- axios使用post请求的时候后台接收不到参数
- linux 无线网卡命令iwlist iwconfig iw
- SecureCRT使用
- 1002 A+B for Polynomials (25 分)【难度: 一般 / 知识点: 模拟】
- (Mybatis)动态SQL
- Paint the Tree CodeForces - 1244D(看似是树,其实是条链)
- LWIP之UDP协议
- 某人说自己是佛菩萨转世,什么情况下才可信
- matplotlib——饼状图pie函数
- Smart3D倾斜摄影测量数据处理
- Snipaste贴图软件及其快捷键使用方法
- 颜宁:学术圈问题很多,也不分国籍,希望年轻一代守住底线
- c语言学生学籍管理修改,C语言课设之学生学籍管理系统.doc
- 欧姆龙PLC以太网与西门子WINCC通讯
- python——不同路径 ||
- 灰度共生矩阵的生成和理解
- Qt编写通用主界面V2019
- 手机计算机的隐藏小技巧,华为手机隐藏的5个技巧,每一个值得收藏
- 请问怎么设置默认浏览器
热门文章
- memoQ中如何显示html预览,Trados、MemoQ和Wordfast 5文件实时预览查看及大批量查找和替换...
- 关于自我学习,推荐8个高质量免费学习网站「自我学习网站推荐
- 免费PDF转换器软件有哪些?不妨试试这几款
- 1953: IG厉害
- adxl345取出值怎么算角度_adxl345怎样通过想,x,y,z的输出计算出角度值
- Error:Kotlin: Module was compiled with an incompatible version of Kotlin...
- linux ps 命令s意义,ps命令输出进程状态S+的含义解析
- web前端入门到实战:3种姿势实现26个英文字母的案例
- 程序猿每日经典英语必读
- Unity中射线检测实现瞄准等功能——Physics.Raycast