欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#获取微信二维码显示到wpf

程序员文章站 2023-02-20 22:03:14
微信的api开放的二维码是一个链接地址,而我们要将这个二维码显示到客户端。方式很多,今天我们讲其中一种。 调用方式: 这个是访问微信地址url,获取到这个url中显示的微信二维码,拿到这个图片,显示到wpf 更多方式了解请加页面下方的群 ......

微信的api开放的二维码是一个链接地址,而我们要将这个二维码显示到客户端。方式很多,今天我们讲其中一种。

 /// <summary>
        /// 获取图片路径
        /// </summary>
        /// <param name="httpurl"></param>
        /// <returns></returns>
        public string getimageurl(string httpurl)
        {
            httpwebrequest req = (httpwebrequest)webrequest.create(httpurl);
            req.servicepoint.expect100continue = false;
            req.method = "get";
            req.keepalive = true;
            req.contenttype = "image/png";
            httpwebresponse rsp = (httpwebresponse)req.getresponse();
            streamreader reader = new streamreader(rsp.getresponsestream(), encoding.getencoding("utf-8"));
            string str = reader.readtoend();
            string[] imgstr = gethtmlimageurllist(str);
            string strer = "https://open.weixin.qq.com" + imgstr[0];
            return strer;
        }
        /// <summary>
        /// 获取img标签
        /// </summary>
        /// <param name="shtmltext"></param>
        /// <returns></returns>
        public string[] gethtmlimageurllist(string shtmltext)
        {
            regex regimg = new regex(@"<img\b[^<>]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?<imgurl>[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", regexoptions.ignorecase);
            matchcollection matches = regimg.matches(shtmltext);
            int i = 0;
            string[] surllist = new string[matches.count];
            foreach (match match in matches)
                surllist[i++] = match.groups["imgurl"].value;
            return surllist;
        }

调用方式:

string imgurl= getimageurl("https://open.weixin.qq.com/......微信地址");
            img.source = new bitmapimage(new uri(imgurl));

这个是访问微信地址url,获取到这个url中显示的微信二维码,拿到这个图片,显示到wpf

更多方式了解请加页面下方的群