예제 #1
0
        public ActionResult CreateQrCode()

        {
            string host = Request.Url.Host;
            var    port = Request.Url.Port;

            string str = "http://" + host + ":" + port + "/Home/Detail?id=100";

            using (var memoryStream = QRCodeHelper.GetQRCode(str, 10))
            {
                /*Response.ContentType = "image/jpeg";
                 * Response.OutputStream.Write(memoryStream.GetBuffer(), 0, (int)memoryStream.Length);
                 * Response.End();*/
                Image img = Image.FromStream(memoryStream);
                //Graphics graphics = Graphics.FromImage(img);
                string savePath = "C:/Users/11619/Desktop/dsds/123.png";
                img.Save(savePath, ImageFormat.Png);

                AddTextToImg("C:/Users/11619/Desktop/dsds/123.png", "鼓风机房配电柜", "yehongjiang");
                img.Dispose();
                img = Image.FromFile("C:/Users/11619/Desktop/dsds/567.png");
                //下面这段是将image转换为流从而输出到页面的img标签上去
                MemoryStream ms        = new MemoryStream();
                byte[]       imagedata = null;
                img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                imagedata            = ms.GetBuffer();
                Response.ContentType = "image/jpeg";
                Response.OutputStream.Write(ms.GetBuffer(), 0, (int)ms.Length);
                Response.End();
            }
            return(null);
        }
        public void CreateQrCode()
        {
            string        host = Request.Url.Host;
            var           port = Request.Url.Port;
            string        str  = "http://" + host + ":" + port + "/Chemical/ShowChemicalDevice?id=" + Request.Form["qrcode"];
            SqlConnection con  = new SqlConnection(ConfigurationManager.ConnectionStrings["SewagePlantIMS"].ConnectionString);

            con.Open();
            string     sqlStr  = "select cd_name from dm_chemical_device where id = " + Request.Form["qrcode"] + ";";
            SqlCommand cmd     = new SqlCommand(sqlStr, con);
            string     cd_name = cmd.ExecuteScalar().ToString();

            con.Close();
            using (var memoryStream = QRCodeHelper.GetQRCode(str, 10))
            {
                System.Drawing.Image img = Image.FromStream(memoryStream);
                img = QRCodeHelper.AddTextToImg(img, cd_name, cd_name);

                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                Response.ContentType = "application/octet-stream";
                //文件名+文件格式 (这里编码采用的是utf-8)
                Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(cd_name + ".png", System.Text.Encoding.UTF8));
                Response.BinaryWrite(ms.ToArray());
                ms.Dispose();
                img.Dispose();
            }
        }
예제 #3
0
        public void can_render_qrcode_from_helper()
        {
            //Create QR code
            var bmp = QRCodeHelper.GetQRCode("This is a quick test! 123#?", 10, Color.Black, Color.White, QRCodeGenerator.ECCLevel.H);

            var result = HelperFunctions.BitmapToHash(bmp);

            result.ShouldBe("e8c61b8f0455924fe08ba68686d0d296");
        }
        public ActionResult GetQRCodeImage()
        {
            GetQRCodeImageArgs   args   = RequestArgs <GetQRCodeImageArgs>();
            GetQRCodeImageResult result = new GetQRCodeImageResult();

            if (args == null || String.IsNullOrEmpty(args.Content))
            {
                result.Message = "参数无效。";
                return(new ContentResult()
                {
                    Content = JsonConvert.SerializeObject(result)
                });
            }

            Image qrImage = null;

            try
            {
                qrImage = QRCodeHelper.GetQRCode(args.Content);

                if (qrImage == null)
                {
                    result.Message = "二维码生成失败。";
                    return(new ContentResult()
                    {
                        Content = JsonConvert.SerializeObject(result)
                    });
                }

                string targetDir      = Path.Combine(Server.MapPath("/"), "FileStore", args.Domain.ToString());
                string storeFileName  = Guid.NewGuid().ToString() + ".jpg";
                string outputFileName = Path.Combine(targetDir, storeFileName);
                qrImage.Save(outputFileName, ImageFormat.Jpeg);

                result.Success  = true;
                result.FileName = String.Format("FileStore/{0}/{1}", args.Domain, storeFileName);
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }
            finally
            {
                if (qrImage != null)
                {
                    qrImage.Dispose();
                }
            }


            return(new ContentResult()
            {
                Content = JsonConvert.SerializeObject(result)
            });
        }
        public ActionResult CreateQrCode(int courseId)
        {
            var url = webHost + "/Wap/Member/CheckIn?CourseId=" + courseId.ToString();

            using (var memoryStream = QRCodeHelper.GetQRCode(url, 9))
            {
                Response.ContentType = "image/jpeg";
                Response.OutputStream.Write(memoryStream.GetBuffer(), 0, (int)memoryStream.Length);
                Response.End();
            }
            return(null);
        }
예제 #6
0
        public ActionResult InviteQrCode(int uid = 0)
        {
            var url = string.Format("http://" + Request.Url.Host + "/login/reg?uid=" + uid);

            using (var ms = new MemoryStream())
            {
                QRCodeHelper.GetQRCode(url, ms);
                Response.ContentType = "image/Png";
                Response.OutputStream.Write(ms.GetBuffer(), 0, (int)ms.Length);
                Response.End();
                return(null);
            }
        }
        public async Task GetQRCode()
        {
            Response.ContentType = "image/jpeg";

            string qrToken = await SecurityServices.GetQRToken();

            var bitmap = QRCodeHelper.GetQRCode($"{domain}/Security/Login?token={qrToken}", 4);

            // 将二维码回调标识输出给cookie
            // 创建cookie
            Response.Cookies.Append(QRTOKEN_COOKIE_NAME, qrToken);

            bitmap.Save(Response.Body, ImageFormat.Jpeg);
        }
예제 #8
0
 public void showQRCode(int Index, Config config)
 {
     if (Index >= 0)
     {
         string url = ShareHandler.GetShareUrl(config, Index);
         if (Utils.IsNullOrEmpty(url))
         {
             picQRCode.Image = null;
             txtUrl.Text     = string.Empty;
             return;
         }
         txtUrl.Text     = url;
         picQRCode.Image = QRCodeHelper.GetQRCode(url);
     }
 }
예제 #9
0
 public void showQRCode(VmessItem item)
 {
     if (item != null)
     {
         string url = ShareHandler.GetShareUrl(item);
         if (Utils.IsNullOrEmpty(url))
         {
             picQRCode.Image = null;
             txtUrl.Text     = string.Empty;
             return;
         }
         txtUrl.Text     = url;
         picQRCode.Image = QRCodeHelper.GetQRCode(url);
     }
 }
예제 #10
0
 public void showQRCode(int Index, Config config)
 {
     if (Index >= 0)
     {
         string url = ConfigHandler.GetVmessQRCode(config, Index);
         if (string.IsNullOrEmpty(url))
         {
             picQRCode.Image = null;
             txtUrl.Text     = string.Empty;
             return;
         }
         picQRCode.Image = QRCodeHelper.GetQRCode(url);
         txtUrl.Text     = url;
     }
 }
예제 #11
0
        public void GenereateQRCode(string customer)
        {
            var message    = $"{Name} {customer}".Truncate(50);
            var storeSetup = ExecuteSync(_ => _.GetStoreSetup(StoreId));

            var text = $"C{storeSetup.PayoutSwishNumber};{Orders.Sum(_=>_.Price).ToString("0.00").Replace(",",".")};{message};0";

            if (!string.IsNullOrEmpty(text))
            {
                using var ms     = new MemoryStream();
                using var bitmap = QRCodeHelper.GetQRCode(text, 20, Color.Black, Color.White, QRCodeGenerator.ECCLevel.H);
                bitmap.Save(ms, ImageFormat.Png);
                QRCodeStr = $"data:image/png;base64,{Convert.ToBase64String(ms.ToArray())}";
            }
            StateHasChanged();
        }
 private void QRCodeForm_Shown(object sender, EventArgs e)
 {
     if (Index >= 0)
     {
         VmessQRCode vmessQRCode = null;
         if (ConfigHandler.GetVmessQRCode(config, Index, ref vmessQRCode) != 0)
         {
             return;
         }
         string url = Utils.ToJson(vmessQRCode);
         url             = Utils.Base64Encode(url);
         url             = string.Format("{0}{1}", Global.vmessProtocol, url);
         picQRCode.Image = QRCodeHelper.GetQRCode(url);
         txtUrl.Text     = url;
     }
 }
예제 #13
0
 private void btnShare_Click(object sender, EventArgs e)
 {
     if (this.Height <= grbMain.Height)
     {
         if (Utils.IsNullOrEmpty(subItem.url))
         {
             picQRCode.Image = null;
             return;
         }
         picQRCode.Image = QRCodeHelper.GetQRCode(subItem.url);
         this.Height     = grbMain.Height + 200;
     }
     else
     {
         this.Height = grbMain.Height;
     }
 }
		private void _stateTimer_Tick(object sender, EventArgs e)
		{
			_loginAttempt++;
			StaticFileLogger.Current.LogEvent(GetType().Name + $"._stateTimer_Tick(), _loginAttempt={_loginAttempt}", "Look for QR code", "", EventLogEntryType.Information);
			string text = null;
			using (Bitmap bitmap = (Bitmap)ScreenCaptureTool.CaptureScreenNew())
			{
				text = QRCodeHelper.GetQRCode(bitmap);
				if (!IsValidStudentIdFormat(text))
				{
					string description = Convert.ToBase64String(ScreenCaptureTool.ImageToByteArray(bitmap, 75));
					StaticFileLogger.Current.LogEvent(GetType().Name + "._stateTimer_Tick()", "No QR code found. Screenshot encoded in BASE64:", description, EventLogEntryType.Information);
				}
				else
				{
					StaticFileLogger.Current.LogEvent(GetType().Name + "._stateTimer_Tick()", $"QR code found: '{text}'", "", EventLogEntryType.Information);
					UserID = text;
					_HACK_UserIdFoundInQRCode = true;
				}
				if (_loginAttempt >= 5)
				{
					StaticFileLogger.Current.LogEvent(GetType().Name + "._stateTimer_Tick()", "log in info", $"_loginAttempt is larger than five and _HACK_UserIdFoundInQRCode={_HACK_UserIdFoundInQRCode}", EventLogEntryType.Information);
					if (!_HACK_UserIdFoundInQRCode)
					{
						_mainForm.InvokeUI(delegate
						{
							Show();
							base.WindowState = FormWindowState.Minimized;
							base.WindowState = FormWindowState.Normal;
							BringToFront();
							Focus();
							Activate();
							base.TopMost = true;
						});
					}
					_stateTimer.Enabled = false;
				}
			}
		}
예제 #15
0
        /// <summary>
        /// 教师发起签到
        /// </summary>
        /// <param name="TeaNo">教工编号</param>
        /// <param name="CourseNo">课程编号</param>
        /// <returns></returns>
        public ActionResult InitiatedCheckIn(string TeaNo, string CourseNo)
        {
            if (TeaNo == null || CourseNo == null)
            {
                return(null);
            }
            using (var tran = AttendanceService.dal.dbContext.Database.BeginTransaction())
            {
                AttendanceResult result = AttendanceService.InitiatedAttendance(TeaNo, CourseNo);
                try
                {
                    if (result.ResultCode == ResultCode.Ok)
                    {
                        string HostIP = IPUtils.GetHostAddresse();
                        string data   = $"http://{HostIP}:8080/api/Attendance/StudentCheckIn?AttendanceId={result.AttendanceId}&CourseNo={CourseNo}&StuNo=";
                        byte[] bytes  = QRCodeHelper.GetQRCode(data);

                        var    room         = RoomService.GetEntity(u => u.F_EnCode == result.RoomNo).FirstOrDefault();
                        string mac          = room?.F_ComputeMac;
                        string connectionId = Cache.GetCache <string>(mac);

                        GlobalHost.ConnectionManager.GetHubContext <QRCodeHub>().Clients.Client(connectionId)
                        .ReciverImg(bytes);
                        tran.Commit();
                    }
                }
                catch (Exception exception)
                {
                    ExceptionHelper.AddException(exception);
                    result.ResultCode   = ResultCode.Error;
                    result.Message      = "教室网页已断开连接";
                    result.AttendanceId = null;
                    tran.Rollback();
                }
                return(Json(result, JsonRequestBehavior.AllowGet));
            }
        }
        internal GetMemberQRCodeImageResult GetMemberQRCodeImage(string serverRootDir, GetCampaign_MemberQRCodeImageArgs args)
        {
            GetMemberQRCodeImageResult result = new GetMemberQRCodeImageResult();

            if (args == null || String.IsNullOrEmpty(args.LandingUrl))
            {
                result.Message = "参数不正确";
                return(result);
            }

            MemberEntity member = _memberManager.GetMember(args.MemberId);

            if (member == null)
            {
                result.Message = "会员信息不存在";
                return(result);
            }

            FileRecord fileRecord = _fileManager.Get(args.BackgroundImageId);

            if (fileRecord == null)
            {
                result.Message = "背景图信息不存在";
                return(result);
            }

            string backgroundImageFile =
                Path.Combine(serverRootDir, String.Format("FileStore/{0}/{1}", args.Domain, fileRecord.StoredFileName));

            if (File.Exists(backgroundImageFile) == false)
            {
                result.Message = "背景图文件不存在";
                return(result);
            }

            FileDownloadAgentArgs downloadArgs = new FileDownloadAgentArgs();

            downloadArgs.Domain        = args.Domain;
            downloadArgs.Url           = member.Headimgurl_96;
            downloadArgs.ServerRootDir = serverRootDir;

            FileDownloadAgentResult downloadResult = _fileManager.Download(downloadArgs);

            if (downloadResult.Success == false)
            {
                result.Message = downloadResult.Message;
                return(result);
            }

            string headImageFile = Path.Combine(serverRootDir, downloadResult.OutputFile);

            Image qrImage         = null;
            Image backgroundImage = null;
            Image headImage       = null;

            try
            {
                qrImage = QRCodeHelper.GetQRCode(args.LandingUrl);

                if (qrImage == null)
                {
                    result.Message = "二维码生成失败。";
                    return(result);
                }

                backgroundImage = Image.FromFile(backgroundImageFile);
                Graphics g = Graphics.FromImage(backgroundImage);

                //qrImage
                float x = backgroundImage.Width - qrImage.Width - 20;
                float y = backgroundImage.Height - qrImage.Height - 20;
                g.DrawImage(qrImage, x, y);

                //headImage
                x         = 20;
                y         = backgroundImage.Height - 20 - 96;
                headImage = Image.FromFile(headImageFile);
                g.DrawImage(headImage, x, y, 96, 96);

                ////nickName
                //Font font = new Font("黑体", 35f);
                //x = 96 + 40;
                //y = backgroundImage.Height - font.Size - 50;
                //g.DrawString(member.NickName, font, Brushes.Black, new PointF(x, y));

                g.Save();

                string targetDir      = Path.Combine(serverRootDir, "FileStore", args.Domain.ToString());
                string storeFileName  = Guid.NewGuid().ToString() + ".jpg";
                string outputFileName = Path.Combine(targetDir, storeFileName);
                backgroundImage.Save(outputFileName, ImageFormat.Jpeg);

                result.Success  = true;
                result.FileName = String.Format("FileStore/{0}/{1}", args.Domain, storeFileName);
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }
            finally
            {
                if (qrImage != null)
                {
                    qrImage.Dispose();
                }

                if (backgroundImage != null)
                {
                    backgroundImage.Dispose();
                }

                if (headImage != null)
                {
                    headImage.Dispose();
                }
            }

            return(result);
        }
예제 #17
0
        public BsTableDataSource <ADCDQRCodeViewModel> QRCodeList(NoVerifyQRCodeList request)
        {
            //if (string.IsNullOrEmpty(adcd)) throw new Exception("adcd无效");
            var _adcd = string.IsNullOrEmpty(request.adcd) ? adcd : request.adcd;
            var _year = request.year == null ? DateTime.Now.Year : request.year;

            using (var db = DbFactory.Open())
            {
                var builder = db.From <ADCDInfo>();
                builder.LeftJoin <ADCDInfo, ADCDQRCode>((x, y) => x.adcd == y.adcd);
                builder.Where(w => w.adcd.Contains(_adcd.Substring(0, 9)) && w.adcd != _adcd);
                if (!string.IsNullOrEmpty(request.adnm))
                {
                    builder.Where(w => w.adnm.Contains(request.adnm));
                }
                builder.Select(" ADCDQRCode.id,ADCDQRCode.qrpath,ADCDQRCode.qrname,ADCDInfo.adcd,ADCDInfo.adnm");

                var count = db.Count(builder);

                if (!string.IsNullOrEmpty(request.Sort) && !string.IsNullOrEmpty(request.Order) && request.Order == "asc")
                {
                    builder.OrderBy(o => request.Sort);
                }
                else if (!string.IsNullOrEmpty(request.Sort) && !string.IsNullOrEmpty(request.Order) && request.Order == "desc")
                {
                    builder.OrderByDescending(o => request.Sort);
                }
                else
                {
                    builder.OrderBy(o => o.adcd);
                }

                //var rows = request.PageSize == 0 ? 10 : request.PageSize;
                //var skip = request.PageIndex == 0 ? 0 : request.PageIndex * rows;

                //builder.Limit(skip, rows);
                var RList = db.Select <ADCDQRCodeViewModel>(builder);
                if (!string.IsNullOrEmpty(request.adcds))
                {
                    List <ADCDQRCodeViewModel> lstqrcode = new List <ADCDQRCodeViewModel>();
                    var A = request.adcds.Split(',');
                    for (var i = 0; i < A.Length; i++)
                    {
                        var f = RList.Single(w => w.adcd == A[i]);
                        if (f != null)
                        {
                            ADCDQRCode qrcode = new ADCDQRCode();
                            qrcode.adcd = f.adcd;
                            var filename = f.adnm + f.adcd.Substring(9, 3);
                            if (string.IsNullOrEmpty(f.qrpath))
                            {
                                //新增
                                string str = ConfigurationManager.AppSettings["QRCodeUrl"].ToString() + "?a=" + f.adcd + "";
                                qrcode.qrpath = QRCodeHelper.GetQRCode(str, RealName, filename);
                                qrcode.qrname = filename;
                                db.Insert(qrcode);
                            }
                            else
                            {
                                //删除
                                var filepath = System.Web.HttpContext.Current.Server.MapPath("~/" + f.qrpath);
                                File.Delete(filepath);
                                string str = ConfigurationManager.AppSettings["QRCodeUrl"].ToString() + "?a=" + f.adcd + "";
                                qrcode.qrpath = QRCodeHelper.GetQRCode(str, RealName, filename);
                                qrcode.qrname = filename;
                                db.Update <ADCDQRCode>(qrcode, w => w.adcd == f.adcd);
                            }
                            ADCDQRCodeViewModel qrv = new ADCDQRCodeViewModel()
                            {
                                adcd   = f.adcd,
                                adnm   = f.adnm,
                                qrname = f.qrname,
                                qrpath = qrcode.qrpath
                            };
                            lstqrcode.Add(qrv);
                        }
                    }
                    return(new BsTableDataSource <ADCDQRCodeViewModel>()
                    {
                        rows = lstqrcode, total = lstqrcode.Count()
                    });
                }
                return(new BsTableDataSource <ADCDQRCodeViewModel>()
                {
                    rows = RList, total = count
                });
            }
        }