我有一个 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(使用前将#替换为@)