时间:2021-05-19
本次主要分享的是3个免费的二维码接口的对接代码和测试得出的注意点及区别,有更好处理方式多多交流,相互促进进步;最近在学习JavsScript的扩展TypeScript,感觉语法糖很甜,大部分与C#更为类似,可能都是微软项目的原因吧,有兴趣的朋友可以多多相互交流下;
以上是个人的看法,下面来正式分享今天的文章吧:
下面一步一个脚印的来分享:
Google的Api二维码生成接口
首先,这里给出Google接口文档的链接qr_codes文档,热情的朋友马上就会打开此链接吧,详细看下里面的参数这就不做截图了,大致通常用到的参数是:api地址,内容参数,生成图片的高宽这3个参数,其他的几个参数都采用默认的吧,不同需要大家可以更详细的看下;其实第一次看到文档里面的参数,感觉少了一些东西,比如怎么不能传递二维码中间那个图标的图片地址和扫描二维码过后怎么跳转到我想重定向的url链接呢,带着这个疑问我进行了多次的尝试;下面给出自己尝试的结果说明:
其次,上面是个人的一些总结,下面我们来看下封装的请求接口方法和下载二维码图片方法:
#region 生成二维码
/// <summary> /// 生成二维码 /// </summary> /// <param name="content">展示内容(文本内容 或者 扫描后的跳转http://格式的地址)</param> /// <param name="savePath">保存二维码的磁盘路径(默认程序跟目录+QRCode)</param> /// <param name="logoUrl"> Logo图标地址(格式:http://),(注:google接口暂未研究出此参数)</param> /// <param name="apiUrl">接口地址(内置默认api地址)</param> /// <param name="wAndh">宽度和高度(二维码正方形的,高宽一至,默认200)</param> /// <returns></returns> public virtual string CreateQRCode(string content = null, string savePath = null, string logoUrl = null, string apiUrl = null, int? wAndh = null) { var qrName = string.Empty; #region 参数初始化 ApiUrl = apiUrl ?? ApiUrl; Content = content ?? Content; SaveQRPath = savePath ?? SaveQRPath; LogoUrl = logoUrl ?? LogoUrl; WAndH = wAndh ?? WAndH; #endregion if (string.IsNullOrEmpty(ApiUrl)) { return qrName; } ApiUrl = string.Format("{0}?cht=qr&chl={1}&chs={2}x{2}", ApiUrl, HttpUtility.UrlEncode(Content), WAndH); qrName = DownImg(ApiUrl, SaveQRPath, ImageFormat.Jpeg); return qrName; } #endregion下载二维码图片保存到程序根目录:
#region 下载图片 /// <summary> /// 下载图片 /// </summary> /// <param name="url">图片下载地址</param> /// <param name="savePath">保存路径默认:Img文件夹</param> /// <param name="format">默认:Jpeg</param> /// <returns>新图片名称</returns> public virtual string DownImg(string url, string savePath = "QRCode", ImageFormat format = null) { var qrName = string.Empty; try { format = format ?? ImageFormat.Jpeg; HttpClient http = new HttpClient(); http.Timeout = new TimeSpan(0, 1, 0); using (var stream = http.GetStreamAsync(url).Result) { if (!Directory.Exists(SaveQRPath)) { Directory.CreateDirectory(SaveQRPath); } qrName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "." + format; var path = Path.Combine(savePath, qrName); using (Image img = Image.FromStream(stream)) { img.Save(path, format); } } } catch (Exception ex) { qrName = string.Empty; } return qrName; }#endregion上面两个方法使用的是虚方法,因为我这里是吧google接口当做默认的二维码生成器来使用,后面要讲的另外两个接口都是重写与此;下载图片的方法都是公用的,暂不需要重写;这里需要提到的是调用api接口时有一个固定的参数cht=qr,这个参数表示采用QR方法生成二维码,因为这个api接口还有生成图标的功能,所以只想要生成二维码这里就固定,更多的生成图标功能不在本章分享中,谢谢。
2d-code的Api二维码生成接口
首先,该接口需要通过他们官网注册一个key,然后从后台获取到这个key后才能调用接口地址,当然注册后有个功能是,凡是您通过api接口生成的二维码,除了自己通过流下载,还能通过他们后台一起下载所有生成的图片,本人暂时没有去关注是否生成量大了会收费哈哈,下面列举下接口参数说明和测试得出的注意点:
其次,下面给出封装的代码,由于下载和上面介绍的代码一样是公用的这里就不做陈述:
public QR_2dCode() { ApiUrl = "http:///api.php"; } #region 生成二维码 /// <summary> /// 生成二维码 /// </summary> /// <param name="content">展示内容(文本内容 或者 扫描后的跳转http://格式的地址)</param> /// <param name="savePath">保存二维码的磁盘路径(默认程序跟目录+QRCode)</param> /// <param name="logoUrl"> Logo图标地址(格式:http://),jpg,png测试通过,测试得出有不能成功的,原因不知是否和地址有关</param> /// <param name="apiUrl">接口地址(内置默认api地址)</param> /// <param name="wAndh">宽度和高度(二维码正方形的,高宽一至,默认200)</param> /// <returns></returns> public override string CreateQRCode(string content = null, string savePath = null, string logoUrl = null, string apiUrl = null, int? wAndh = null) { var qrName = string.Empty; #region 参数初始化 ApiUrl = apiUrl ?? ApiUrl; Content = content ?? Content; SaveQRPath = savePath ?? SaveQRPath; LogoUrl = logoUrl ?? LogoUrl; WAndH = wAndh ?? WAndH; #endregion if (string.IsNullOrEmpty(ApiUrl)) { return qrName; } ApiUrl = string.Format("{0}?text={1}&logo={2}&w={3}", ApiUrl, HttpUtility.UrlEncode(Content), HttpUtility.UrlEncode(LogoUrl), WAndH); qrName = DownImg(ApiUrl, SaveQRPath); return qrName; } #endregion }本篇的分享内容在程序设计方面没有太多,重点是分装下这几个接口和分享下接口的差异,方面朋友们可以拿来主义和正在对接二维码生成的朋友做下交流,仅此而已;关键代码的备注都在分享代码里,有更好或者不清楚的地方欢迎留言,谢谢。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
复制代码代码如下://////生成二维码//////生成二维码路径///生成的内容///二维码宽///二维码高///需生成的Logo图片///privateBi
带logo的二维码生成分为两步骤:首先根据输入的内容生成二维码图片,然后读取本地的logo图片,通过图片处理生成带logo的二维码。生成的二维码效果如下:下面直
1.最简单的扫二维码获得信息。首先,在网上找一个二维码生成网站,生成一个二维码,我用的是草料二维码,随便生成了一个二维码做测试。就这个。我搭建的界面如下:如图可
本文实例讲述了PHP生成二维码与识别二维码的方法。分享给大家供大家参考,具体如下:二维码的分类线性堆叠式二维码矩阵式二维码二维码的优缺点优点信息容量大编码范围广
在现在的项目中,较多的使用到二维码,前面介绍过一篇使用Gma生成二维码的操作,现在介绍一个第三方组件,主要介绍生成二维码,二维码的解析,以及对二维码的相关信息的