zoukankan      html  css  js  c++  java
  • C#+ZXing.dll生成手机路径导航二维码

    1、原谅我先写点废话哈

    这两天用C#写一个C端的软件,甲方提出一个很无理的需求(在C端的程序中实现路径导航,关键是这个程序最终是运行在物理隔绝的电脑上的……),头疼了好几天,领导突然想到可以把坐标+百度API的网址直接生成一个二维码,然后使用手机的百度地图一扫,直接就是路径导航界面,问题解决了!!!

    2、这里进入正题:

    (1)生成二维码需要使用ZXing.dll,因此需要实现下载你所需版本的dll(具体的下载方法可以在管网下载,也可以使用VS的NuGet管理包)。

    (2)这一步就直接上代码了(这段代码可以直接复制使用)

     1         public void CreateQRFile()
     2         {
     3             string[] lpValues_Begin = new string[] { "117.25896", "33.256" };
     4             string[] lpValue_End = new string[] { "118.57894", "34.2589" };
     5             StringBuilder lpBuilder = new StringBuilder();
     6             //必须是纬度在前,经度在后
     7             lpBuilder.AppendFormat("baidumap://map/direction?origin={0},{1}&destination={2},{3}&coord_type=bd09ll&mode=driving&src=ios.baidu.openAPIdemo",
     8                 lpValues_Begin[1], lpValues_Begin[0], lpValue_End[1], lpValue_End[0]);
     9             Image lpImg = CreateImageQR(lpBuilder.ToString());
    10             string lpFile_Target = @"C:UsersAdministratorDesktop328.png";
    11             lpImg.Save(lpFile_Target);
    12         }
    13 
    14         /// <summary>
    15         /// 生成指定内容对应的二维码
    16         /// </summary>
    17         /// <param name="pContents">待生成内容</param>
    18         /// <returns>二维码图片</returns>
    19         private static Image CreateImageQR(string pContents)
    20         {
    21             BarcodeWriter lpOpra_CodeWriter = new BarcodeWriter();
    22             lpOpra_CodeWriter.Format = BarcodeFormat.QR_CODE;
    23             lpOpra_CodeWriter.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");//编码
    24             lpOpra_CodeWriter.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H);
    25             const int codeSizeInPixels = 250;//设置图片长宽
    26             lpOpra_CodeWriter.Options.Height = lpOpra_CodeWriter.Options.Width = codeSizeInPixels;
    27             lpOpra_CodeWriter.Options.Margin = 0;//设置边框
    28             ZXing.Common.BitMatrix bm = lpOpra_CodeWriter.Encode(pContents);
    29             Bitmap lpImg_QR = lpOpra_CodeWriter.Write(bm);
    30             return lpImg_QR;
    31         }
    View Code

    (3)代码中的那个字符串是百度地图专用的,如果使用高德地图需要把那个字符串替换成高德的API使用方式。

    (4)功能限制:目前这段代码只是把一段文字生成了二维码,至于图片等信息目前还没有深入研究,不过看过其他人的博客,形式跟这个基本类似,小伙伴可以自己研究一哈。

    【我的这篇文章参考了其他伙伴的生成二维码的实现,在这里对他(http://www.cnblogs.com/WhyShang/)表示感谢。】

  • 相关阅读:
    fetch的优点
    gitignore不起作用
    css动画和js动画区别
    工业家居气象空气环境质量监测仪记录数据甲醛PM2.5二氧化碳大气压温湿度
    摆脱淘宝、京东、拼多多内部引流消费规则,自建网站利用其完成支付
    语音朗读模块TTS文本变量实时转语音朗读科大讯飞XFS5152CE芯片AI
    PCB altium designer AD10 AD20 导出DWG CAD文件 过孔问题
    【Creator3】如何在3D场景中实现炫酷传送门,和简单的小地图功能,RenderTexture技术应用
    B站视频:【Creator3】好玩的编队代码 魔性排列停不下来 附源码及出处
    B站视频:《四图猜词》 Part3 | CocosCreator游戏开发教程
  • 原文地址:https://www.cnblogs.com/qingtian-jlj/p/10616805.html
Copyright © 2011-2022 走看看