C#+ZXing.dll生成手机路径导航二维码
1、原谅我先写点废话哈
这两天用C#写一个C端的软件,甲方提出一个很无理的需求(在C端的程序中实现路径导航,关键是这个程序最终是运行在物理隔绝的电脑上的……),头疼了好几天,领导突然想到可以把坐标+百度API的网址直接生成一个二维码,然后使用手机的百度地图一扫,直接就是路径导航界面,问题解决了!!!
2、这里进入正题:
(1)生成二维码需要使用ZXing.dll,因此需要实现下载你所需版本的dll(具体的下载方法可以在管网下载,也可以使用VS的NuGet管理包)。
(2)这一步就直接上代码了(这段代码可以直接复制使用)
public void CreateQRFile()
{
string[] lpValues_Begin = new string[] { "117.25896", "33.256" };
string[] lpValue_End = new string[] { "118.57894", "34.2589" };
StringBuilder lpBuilder = new StringBuilder();
//必须是纬度在前,经度在后
lpBuilder.AppendFormat("baidumap://map/direction?origin={0},{1}&destination={2},{3}&coord_type=bd09ll&mode=driving&src=ios.baidu.openAPIdemo",
lpValues_Begin[], lpValues_Begin[], lpValue_End[], lpValue_End[]);
Image lpImg = CreateImageQR(lpBuilder.ToString());
string lpFile_Target = @"C:\Users\Administrator\Desktop\0328.png";
lpImg.Save(lpFile_Target);
} /// <summary>
/// 生成指定内容对应的二维码
/// </summary>
/// <param name="pContents">待生成内容</param>
/// <returns>二维码图片</returns>
private static Image CreateImageQR(string pContents)
{
BarcodeWriter lpOpra_CodeWriter = new BarcodeWriter();
lpOpra_CodeWriter.Format = BarcodeFormat.QR_CODE;
lpOpra_CodeWriter.Options.Hints.Add(EncodeHintType.CHARACTER_SET, "UTF-8");//编码
lpOpra_CodeWriter.Options.Hints.Add(EncodeHintType.ERROR_CORRECTION, ZXing.QrCode.Internal.ErrorCorrectionLevel.H);
const int codeSizeInPixels = ;//设置图片长宽
lpOpra_CodeWriter.Options.Height = lpOpra_CodeWriter.Options.Width = codeSizeInPixels;
lpOpra_CodeWriter.Options.Margin = ;//设置边框
ZXing.Common.BitMatrix bm = lpOpra_CodeWriter.Encode(pContents);
Bitmap lpImg_QR = lpOpra_CodeWriter.Write(bm);
return lpImg_QR;
}
(3)代码中的那个字符串是百度地图专用的,如果使用高德地图需要把那个字符串替换成高德的API使用方式。
(4)功能限制:目前这段代码只是把一段文字生成了二维码,至于图片等信息目前还没有深入研究,不过看过其他人的博客,形式跟这个基本类似,小伙伴可以自己研究一哈。
【我的这篇文章参考了其他伙伴的生成二维码的实现,在这里对他(http://www.cnblogs.com/WhyShang/)表示感谢。】
C#+ZXing.dll生成手机路径导航二维码的更多相关文章
- 【转】 Android 基于google Zxing实现对手机中的二维码进行扫描--不错
原文网址:http://blog.csdn.net/xiaanming/article/details/14450809 转载请注明出处:http://blog.csdn.net/xiaanming/ ...
- Android 基于google Zxing实现对手机中的二维码进行扫描
转载请注明出处:http://blog.csdn.net/xiaanming/article/details/14450809 有时候我们有这样子的需求,需要扫描手机中有二维码的的图片,所以今天实现的 ...
- .NET使用ZXing.NET生成中间带图片的二维码
很久之前就有写这样的代码了,只是一直没记录下来,偶然想写成博客. 把之前的代码封装成函数,以方便理解以及调用. 基于开源的 ZXing.NET 组件,代码如下: 先添加对ZXing.NET的引用,然后 ...
- C# 生成 DataMatrix 格式的二维码
该文主要是利用OnBarcode.dll 生成 DataMatrix 格式的二维码的一些简单方法和操作技巧.关于QrBarcode的二维码比较常见和简单,网上有很多资源. 1.附件为dll 2.利用上 ...
- C# ZXing.Net生成二维码、识别二维码、生成带Logo的二维码(二)
1.使用ZXint.Net生成带logo的二维码 /// <summary> /// 生成带Logo的二维码 /// </summary> /// <param name ...
- C#使用zxing,zbar,thoughtworkQRcode解析二维码,附源代码
最近做项目需要解析二维码图片,找了一大圈,发现没有人去整理下开源的几个库案例,花了点时间 做了zxing,zbar和thoughtworkqrcode解析二维码案例,希望大家有帮助. zxing是谷歌 ...
- 【转】Android手机客户端关于二维码扫描的源码--不错
原文网址:https://github.com/SkillCollege/QrCodeScan QrCodeScan 这是Android手机客户端关于二维码扫描的源码,使用了高效的ZBar解码库,并修 ...
- PHP生成有背景的二维码图,摘自网络
有一天产品MM高高兴兴的走过来,兴奋的和我分享她想出来的一个新的idea. 产品MM:你看这个(她指了指她的手机),一脸兴奋 那是一张带着二维码的图片,内容如下: 她接着说:如果我们的分销也能做成类似 ...
- php生成微信小程序二维码源码
目前有3个接口可以生成小程序码,开发者可以根据自己的需要选择合适的接口.第一步:获取 access_token public function getWxAccessToken(){ $appid ...
随机推荐
- win7、centos7 双系统安装总结
centos7安装过程 问题:TroubleShooting选项进入图形化界面安装才成功. win7恢复引导区 问题:安装完Centos后,win7的引导区不见了 具体恢复过程:http://www. ...
- 使用ContentProvider实现多应用的数据共享
ContentProvider: 实现一组通用的数据和方法的储存和共享,通常是通过getContentResolver()方法来获得Activity或其他应用程序组件中的ContentProvider ...
- redis安装--单机
本例基于CentOS7.2系统安装 环境需求: 关闭防护墙,selinux 安装好gcc等编译需要的组件 yum -y install gcc c++ 到redis官网下载合适版本的redis安装包, ...
- springmvc 怎么响应json数据
springmvc 怎么响应json数据@Controller@RequestMapping("/items") class ItemsController{ @RequestM ...
- gitlab 502
经过一个下午的查找终于发现了错误,原来是在服务器上还开启了一个tomcat服务,占用了8080端口,使GitLab的unicorn服务不能开启. 最后在/etc/gitlab/gitlab.rb 中做 ...
- Kb和KB的区别
- TaskScheduler
一初始化 在SparkContext初始化的时候,同时初始化三个对象.DAGScheduler,TaskScheduler,SchedulerBackend.DAGScheduler,前面已经讲到,做 ...
- PHP错误日志记录:display_errors与log_errors的区别
我们所做的东西,无论在开发环境还是在生产环境都可能会出现一些问题. 开发环境下,我们会要求错误尽可能详细的呈现出来,错误提示信息越详细越好,越详细越能帮助开发人员确定问题所在并从根本上解决他们. 生产 ...
- 254. Factor Combinations 返回所有因数组合
[抄题]: Numbers can be regarded as product of its factors. For example, 8 = 2 x 2 x 2; = 2 x 4. Write ...
- ES6的let和const的不同点
详细的异同点请点击:https://blog.csdn.net/zhouziyu2011/article/details/71366078