iT邦幫忙

0

用memory stream Bind image,成功後,會跳出一頁image,不在image的頁面顯示,如何讓它顯示在原先image存在的頁面?

  • 分享至 

  • xImage

共用程式的寫法:

public static MemoryStream GetQRCode(string data)
{
//String data = context.Request["CodeText"];
System.Web.HttpContext context = System.Web.HttpContext.Current;
System.IO.MemoryStream MStream = new MemoryStream();
if (!string.IsNullOrEmpty(data))
{
QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();
qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE;
qrCodeEncoder.QRCodeScale = 4;
qrCodeEncoder.QRCodeVersion = 8;
qrCodeEncoder.QRCodeErrorCorrect = QRCodeEncoder.ERROR_CORRECTION.M;
System.Drawing.Bitmap image = qrCodeEncoder.Encode(data);
MStream = new System.IO.MemoryStream();
image.Save(MStream, System.Drawing.Imaging.ImageFormat.Png);
context.Response.ClearContent();
context.Response.ContentType = "image/Png";
context.Response.BinaryWrite(MStream.ToArray());
}
context.Response.Flush();
context.Response.End();
return MStream;
}

image存在主頁面的程式
MemoryStream ms = new MemoryStream();
ms = SysHelp.GetQRCode(imUrl1);
Image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(ms.ToArray(), 0, ms.ToArray().Length);

kanework iT邦新手 5 級 ‧ 2023-04-10 16:22:34 檢舉
根據您提供的程式碼,似乎是在使用ASP.NET Web Forms進行開發。如果您要在網頁上顯示圖片,可以使用ASP.NET Web Forms提供的Image控制項,並設定其ImageUrl屬性為指向您要顯示圖片的URL。假設您的GetQRCode方法在後端網頁代碼中定義如下:

public static MemoryStream GetQRCode(string data)
{
// 製作QR code的程式碼略
return MStream;
}

在前端的網頁代碼中,您可以將Image1的ImageUrl屬性設定為另一個ASP.NET頁面(例如QRCode.aspx)的URL,並將QueryString傳遞到該頁面,以便於該頁面上的程式碼可以將圖片渲染到頁面上。假設您的主頁面的代碼如下:

<asp:Image ID="Image1" runat="server" />

那麼您可以將其更改為:

<asp:Image ID="Image1" runat="server" ImageUrl="QRCode.aspx?data=xxx" />

接下來,您需要在QRCode.aspx頁面中編寫程式碼,以便從QueryString中獲取資料,並生成QR code圖片。您可以在Page_Load事件中編寫程式碼,例如:

protected void Page_Load(object sender, EventArgs e)
{
string data = Request.QueryString["data"];
MemoryStream ms = SysHelp.GetQRCode(data);
Response.ContentType = "image/Png";
Response.BinaryWrite(ms.ToArray());
}

這樣,當用戶訪問帶有QueryString的URL(例如http://example.com/QRCode.aspx?data=xxx)時,QRCode.aspx頁面將根據QueryString中的數據生成QR code圖片並返回給用戶。然後,該圖片將顯示在主頁面上的Image1控制項中。
dove iT邦新手 5 級 ‧ 2023-04-11 11:39:54 檢舉
謝謝您,上面那個回傳memorystream,我改寫後已經可以用了,感謝!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答