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. 苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案

    苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案 参考文章: (1)苹果原生二维码生成与扫描及生成的二维码不清楚的解决方案 (2)https://www.cnblogs.com/CoderEYL ...

  3. 二维码生成、扫描、图片识别(Zxing)

    这样的例子虽然已经很多了,不过我在网上浏览了一圈,也没找到几个图库二维码图片识别例子,好的算法识别率才高.这里有一个好点的算法,算法不是我写的,只是作为整理记录,给众多安卓开发者一个方便.demo的U ...

  4. Android开发——Android中的二维码生成与扫描

    0. 前言 今天这篇文章主要描述二维码的生成与扫描,使用目前流行的Zxing,为什么要讲二维码,因为二维码太普遍了,随便一个Android APP都会有二维码扫描.本篇旨在帮助有需求的同学快速完成二维 ...

  5. Android之二维码生成与扫描

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51260428 本文出自:[顾林海的博客] ##前言 月底离开公司,准备 ...

  6. 转【微信小程序 四】二维码生成/扫描二维码

    原文:https://blog.csdn.net/xbw12138/article/details/75213274 前端  二维码生成  二维码要求:每分钟刷新一次,模拟了个鸡肋,添加了个按分钟显示 ...

  7. iOS开发二维码生成和扫描

    准备工作 导入<CoreImage/CoreImage.h>,生成二维码用 导入<AVFoundation/AVFoundation.h>,读取二维码用 设置代理协议AVCap ...

  8. iOS - 二维码生成、扫描及页面跳转

    主要内容的介绍 普通二维码生成 彩色二维码生成 带有小图标二维码生成 扫描二维码的自定义 是否开启闪光灯 从相册中获取二维码 扫描成功之后提示音 扫描成功之后的界面之间的跳转 扫描二维码界面采取了微信 ...

  9. Android中的二维码生成与扫描

    转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/51260428 本文出自:[顾林海的博客] 前言 月底离开公司,准备月底 ...

最新文章

  1. 在Python函数内部赋值操作是新的变量而不是全局变量
  2. axios使用post请求的时候后台接收不到参数
  3. linux 无线网卡命令iwlist iwconfig iw
  4. SecureCRT使用
  5. 1002 A+B for Polynomials (25 分)【难度: 一般 / 知识点: 模拟】
  6. (Mybatis)动态SQL
  7. Paint the Tree CodeForces - 1244D(看似是树,其实是条链)
  8. LWIP之UDP协议
  9. 某人说自己是佛菩萨转世,什么情况下才可信
  10. matplotlib——饼状图pie函数
  11. Smart3D倾斜摄影测量数据处理
  12. Snipaste贴图软件及其快捷键使用方法
  13. 颜宁:学术圈问题很多,也不分国籍,希望年轻一代守住底线
  14. c语言学生学籍管理修改,C语言课设之学生学籍管理系统.doc
  15. 欧姆龙PLC以太网与西门子WINCC通讯
  16. python——不同路径 ||
  17. 灰度共生矩阵的生成和理解
  18. Qt编写通用主界面V2019
  19. 手机计算机的隐藏小技巧,华为手机隐藏的5个技巧,每一个值得收藏
  20. 请问怎么设置默认浏览器

热门文章

  1. memoQ中如何显示html预览,Trados、MemoQ和Wordfast 5文件实时预览查看及大批量查找和替换...
  2. 关于自我学习,推荐8个高质量免费学习网站「自我学习网站推荐
  3. 免费PDF转换器软件有哪些?不妨试试这几款
  4. 1953: IG厉害
  5. adxl345取出值怎么算角度_adxl345怎样通过想,x,y,z的输出计算出角度值
  6. Error:Kotlin: Module was compiled with an incompatible version of Kotlin...
  7. linux ps 命令s意义,ps命令输出进程状态S+的含义解析
  8. web前端入门到实战:3种姿势实现26个英文字母的案例
  9. 程序猿每日经典英语必读
  10. Unity中射线检测实现瞄准等功能——Physics.Raycast