将字节转换为图像 ASP.NET c# 并在 Image1.Url 中使用它

2024-06-25

我有一个 WEB-APP,它是一个网络摄像头应用程序,它拍摄图像并以字节形式存储到数据库中,话虽这么说,我也不想保存拍摄的图像并将其保存在任何类型的文件夹中现在,显示捕获的图像以供我保存并再次查看的唯一方法是,我有一个在单击捕获图像时触发的输入流。

using (StreamReader reader = new StreamReader(Request.InputStream))
{
    hexString = Server.UrlEncode(reader.ReadLine());
    string imageName = DateTime.Now.ToString("dd-MM-yy hh-mm-ss");
    string imagePath = string.Format("~/Pictures/{0}.png", imageName);
    File.WriteAllBytes(Server.MapPath(imagePath), ConvertHexToBytes(hexString));
    Session["Byte"] = hexString;
    //   Session["CapturedImage"] = ResolveUrl(imagePath);
    Image1.ImageUrl = "data:image/jpg;base64," + Convert.ToBase64String(ConvertHexToBytes(hexString));

}

我有一个方法可以将该十六进制字符串转换为字节:

private static byte[] ConvertHexToBytes(string hex)
{
    // MemoryStream stream = new MemoryStream();
    byte[] bytes = new byte[hex.Length / 2];
    for (int i = 0; i < hex.Length; i += 2)
    {
        bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16);
    }
    return bytes;
}

我想使用字节显示该图像,我不想将图像保存在任何文件夹中。如何获取这些字节并将它们放入图像中?

我有一个诽谤的图像标签 Image1.imageUrl =?我尝试了base64版本,但它不起作用。


如何获取这些字节并将它们放入图像中?

注意:我根据您的问题假设您的问题不是关于将十六进制转换为字节。

想象一下你的电脑里有这个aspx page:

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

在下面的代码中GetImageBytes返回一个byte[]。然后,为了提供图像(不将其保存到文件中),我们需要做的就是:

using (MemoryStream ms = new MemoryStream(GetImageBytes()))
{
    // Image1 is instance of System.Web.UI.WebControls
    this.Image1.ImageUrl = "data:image/png;base64," + Convert.ToBase64String(ms.ToArray());
}

private byte[] GetImageBytes()
{
    return System.IO.File.ReadAllBytes(Server.MapPath("~/Content/someImage.jpg"));
}

通过将图像放入您的中来尝试一下Content文件夹来测试它。既然您知道它可以工作,您需要确保它可以与您的设备一起工作ConvertHexToBytes方法。如果没有,那么显然有问题ConvertHexToBytes method.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将字节转换为图像 ASP.NET c# 并在 Image1.Url 中使用它 的相关文章

随机推荐