通过Response返回图像(动态生成图像,二维码在线生成)

该文章展示了如何在ASP.NET环境中通过后端代码生成二维码图像并输出到前端展示。使用C#编写了处理页面加载事件的方法,从URL参数中获取数据,生成二维码图片,并通过Response对象以JPEG格式输出。前端HTML中使用img标签或asp:Image控件显示生成的二维码。
摘要由CSDN通过智能技术生成

1、通过Response输出图像:(QR.aspx)

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Tool
{
    /// <summary>
    /// 用于生成二维码图像
    /// </summary>
    public partial class QR : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string url = Request.Url.ToString();
            if (url.Contains("?"))
            {
                String data = url.Substring(url.IndexOf("?") + 1);      // 获取待生成的二维码参数
                Bitmap pic = QrTool.ToQR(data);                         // 生成二维码

                System.IO.MemoryStream stream = new System.IO.MemoryStream(); //创建支持存储区的内存流
                pic.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg);    //保存图片

                Response.ClearContent();                //清空缓冲区
                Response.ContentType = "Image/jpeg";
                Response.BinaryWrite(stream.ToArray()); //将流内容输出至Response接收端
            }
            Response.Write("");
        }
    }
}

 2、前端页面添加img元素设置src(或asp:Image动态修改图像地址)

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>二维码在线生成</title>

    <style type="text/css"> 
        .align-center{ position:fixed;left:50%;top:50%;margin-left:-200px;margin-top:-200px; width:400px; height:400px; background-color:silver; fill-opacity:20}
        .back-color { background:#019fe8;}
    </style> 
</head>

<body>

    <div class="align-center">
        <asp:Image ID="Image1" runat="server" Width="400" Height="400" />
        <%--<img runat="server" id="Image2" src="../Tool/QR.aspx" style="width: 400px; height: 400px" />--%>
                
    </div>
</body>
</html>

 3、aspx中后端,修改Image对应的url:

Image1.ImageUrl = "~/Tool/QR.aspx?" + HttpUtility.UrlEncode(param);
//Image1.Src = "../Tool/QR.aspx?" + HttpUtility.UrlEncode(param);
using Tool;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Tool
{
    public partial class QRTool : BaseWebPage
    {
        /// <summary>
        /// 载入后执行参数对应的sql请求
        /// </summary>
        public override void Load(object sender, EventArgs e)
        {
            //Image1.ImageUrl = "~/tools/QRTool/QR/" + "20180728_093650_321756.png";

            string param = "测试信息";

            Image1.ImageUrl = "~/Tool/QR.aspx?" + HttpUtility.UrlEncode(param);
            //Image1.Src = "../Tool/QR.aspx?" + HttpUtility.UrlEncode(param);
        }

    }
}

示例: 二维码在线生成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值