从内存渲染图像

问题描述 投票:0回答:1

我的表单上有一个 ASP.NET 控件。声明为:

<asp:imagebutton runat="server" Id="myImage1"/>

在后面的代码中,我从 Redis 数据库获取图像。我将图像读入内存。像这样:

Dim myByteArray() As Byte = myRedisDb.StringGet(myImageName)

我通过将字节数组写入磁盘然后打开磁盘文件来测试字节数组。 使用以下代码:

System.IO.File.WriteAllBytes("D:\Temp\myImage.png", myByteArray)
myImage1.ImageUrl = "D:\Temp\myImage.png"

如何将此字节分配给控件,而无需先将其写入磁盘?
使用 Redis 的全部目的是提高性能。磁盘写入和磁盘读取效率不高。

asp.net vb.net redis webforms imagebutton
1个回答
0
投票

您可以读取所有图像字节,将它们转换为 Base64,然后使用数据 URI (https://en.m.wikipedia.org/wiki/Data_URI_scheme)。图像将完全内嵌在 HTML 中,这当然会使其变得更大。 有关 ASP.NET Core 的示例,但您可以转向 WebForms,请查看 https://weblogs.asp.net/ricardoperes/inline-images-with-asp-net-core

© www.soinside.com 2019 - 2024. All rights reserved.