C#生成微信小程序文章二维码
/// <summary>/// 获取access_token/// </summary>/// <returns></returns>[HttpGet][Route("GetAccessToken")]public async Task<ActionResult> GetAccessToken(){string token = string.Empty;try{string wechatapi = "https://api.weixin.qq.com/";string appID = "wxc1aac131465e16b5";string appSecret = "ef392ad696f8ccbfd6659758ebead29c";//获取微信tokenstring token_url = wechatapi + "cgi-bin/token?grant_type=client_credential&appid=" + appID + "&secret=" + appSecret;HttpWebRequest request = (HttpWebRequest)WebRequest.Create(token_url);request.Method = "GET";HttpWebResponse response = (HttpWebResponse)request.GetResponse();Stream getImgStream = response.GetResponseStream();StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);string content = reader.ReadToEnd();response.Close();reader.Dispose();token = content;}catch (Exception ex){}return Ok(token);}/// <summary>/// B接口-微信小程序带参数二维码的生成/// </summary>/// <param name="access_token"></param>/// <returns></returns>[HttpGet][Route("CreateWxCode")]public async Task<ActionResult> CreateWxCode(string access_token){//适用于需要的码数量极多,或仅临时使用的业务场景//通过该接口生成的小程序码,永久有效,数量暂无限制。string postUrl = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + access_token;HttpWebRequest request = WebRequest.Create(postUrl) as HttpWebRequest;request.Method = "POST";request.ContentType = "application/json;charset=UTF-8";string options = "{\"scene\":\"" + 1 + "\",\"page\":\"pages/home/home\",\"width\":\"150\"}";byte[] payload = Encoding.UTF8.GetBytes(options);request.ContentLength = payload.Length;Stream writer = request.GetRequestStream();writer.Write(payload, 0, payload.Length);writer.Close();System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();System.IO.Stream stream = response.GetResponseStream();List<byte> bytes = new List<byte>();int temp = stream.ReadByte();while (temp != -1){bytes.Add((byte)temp);temp = stream.ReadByte();}byte[] result = bytes.ToArray();string base64 = Convert.ToBase64String(result);//将byte[]转为base64var QRcode = ToImage(base64);CombineBitmap("D://EWM/immm/222.jpg", QRcode);return Ok("{\"errcode\":0,\"errmsg\":\"获取成功\",\"buffer\":\"" + base64 + "\"}");}private string ToImage(string base64String){byte[] bytes = Convert.FromBase64String(base64String);using (Image image = Image.FromStream(new MemoryStream(bytes))){var imgName = DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";image.Save("D://EWM/" + imgName, System.Drawing.Imaging.ImageFormat.Jpeg); // Or Pngreturn "D://EWM/" + imgName;}}public string CombineBitmap(string backgroundImg,string FrontImg){var imgName = DateTime.Now.ToString("yyyyMMddhhmmss") + ".jpg";String jpg3 = "D://EWM/" + imgName;Image img1 = Image.FromFile(FrontImg);Image img2 = Image.FromFile(backgroundImg);int width = img2.Width;int height = Math.Max(img1.Height, img2.Height);Bitmap img3 = new Bitmap(width, height);Graphics g = Graphics.FromImage(img3);g.Clear(Color.Black);g.DrawImage(img2, new Point(0, 0));g.DrawImage(img1, new Point(img2.Width - img1.Width, img2.Height - img1.Height));System.Drawing.Text.PrivateFontCollection font = new System.Drawing.Text.PrivateFontCollection();font.AddFontFile("E:/Orchard_GOV/OnonMRMS/src/OrchardCore.Onon/Onon.Gov/wwwroot/Fonts/MQG.ttf");//检测字体类型是否可用var r = font.Families[0].IsStyleAvailable(FontStyle.Regular);var b = font.Families[0].IsStyleAvailable(FontStyle.Bold);//定义成新的字体对象FontFamily myFontFamily = new FontFamily(font.Families[0].Name, font);Font myFont = new Font(myFontFamily, 22, FontStyle.Bold);//将字体显示到控件 //g.DrawString("这里输入文字", font, new SolidBrush(Color.Red), 15, 15);g.TranslateTransform(15, 15);//设置旋转角度g.RotateTransform(90);//画文字 g.DrawString("ᠮᠣᠩᠭᠣᠯ ᠬᠥᠮᠥᠨ ᠡᠨᠳᠡ ᠪᠠᠢᠨᠠ", myFont, new SolidBrush(Color.White),60, -60);g.ResetTransform();g.Dispose();img2.Dispose();img1.Dispose();img3.Save(jpg3, System.Drawing.Imaging.ImageFormat.Jpeg);img3.Dispose();return jpg3;}
-----GT
C#生成微信小程序文章二维码相关推荐
- 微信小程序分享二维码生成
生成微信小程序分享二维码 微信小程序官方开放的二维码的接口,其中有一个是生成小程序二维码的,还有一个是圆形的小程序码,我这里就用php生成二维码. 完整代码: public function shar ...
- 微信小程序扫描二维码或者条码
程序是需要扫描条形码然后跳转到对应的产品信息页,其实微信小程序就有一个扫码识别的API,下面一起来看看: wx.scanCode(Object object) 调起客户端扫码界面进行扫码. 示例代码: ...
- 微信小程序转二维码方法分享
微信小程序转二维码方法分享 需要转码的可以看看 这个东西是看个人需求的,618就要来了,各种活动也将来袭 有些小伙伴不知道怎么生成 为了方便小程序邀请活动没法外发,这里分享下将小程序转二维码的方法 首 ...
- 【微信小程序】二维码跳转规则的前缀匹配是什么意思?
前言 基础库 2.12.0 开发者工具 1.03.2008270 微信小程序的二维码跳转规则 为了方便小程序开发者更便捷地推广小程序,兼容线下已有的二维码,微信公众平台开放扫描普通链接二维码跳转小程序 ...
- 微信小程序获取二维码中URL中带的参数
解析微信小程序获取二维码中的url参数 onLoad: function (options) { console.log(options) let qrUrl = decodeURIComponent ...
- 微信小程序普通二维码解析
1.区别于微信小程序官方二维码是直接从onLoad的 options 解构出来就行,它是一个对象,这个大家都知道. 2.普通二维码 也是从onLoad的 options 里解构出来,此时options ...
- 微信小程序获取二维码接口整理,.Net Core后台获取小程序二维码
2019独角兽企业重金招聘Python工程师标准>>> 一.关于二维码接口说明 参考:https://my.oschina.net/tianma3798/blog/1811307 获 ...
- 微信小程序获取二维码
原文链接:https://blog.csdn.net/w410589502/article/details/77702358/ 版权归原有博主,此处为了方便自己是查看,故copy一份,B接口调用,亲测 ...
- 【微信小程序】微信小程序保存二维码海报到相册,以及解决二维码不够清晰的问题
小程序保存二维码海报 添加 canvas 元素poster <canvas class="poster" canvas-id="poster" style ...
最新文章
- Zookeeper服务端线程分析(单机)
- CSS样式表初始化代码
- Download Excel
- QuickWAP 2005企业WAP网站系统简介
- SQL OVER用法
- java quartz没执行完_quartz 防止上一任务未执行完毕,下一时间点重复执行
- (JAVA)线程之lock和死锁(例)
- Struts2标签库常用标签
- 应用发布前,需要注意事情
- Java并发之ThreadLocal
- decimal.tostring()格式
- iOS底层探索之多线程(三)—初识GCD
- cmd长ping记录日志和时间_ping记录带时间戳
- SPSS数据分析全套教程(1)——SPSS概览
- 在java中new一个对象的流程是怎样的
- 交换机(三层)接入层、汇聚层和核心层交换机的特点
- 网络营销人应具备的五大思维
- 计算机版初中语文课文原文,初中语文课文蝉原文
- 字节跳动技术岗官方解析 · 客户端篇:业务、中台、infra,这里的客户端究竟是怎样的?...
- 一个项目中两台西门子S7-1500CPU之间的TCP通信组态