Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在aspx页面中显示来自对象的嵌入图像?_C#_Asp.net_Image - Fatal编程技术网

C# 如何在aspx页面中显示来自对象的嵌入图像?

C# 如何在aspx页面中显示来自对象的嵌入图像?,c#,asp.net,image,C#,Asp.net,Image,我有一个嵌入图像的对象,可作为属性访问,例如myObject.image。此图像是作为嵌入资源存储在dll中的Gif。在我的aspx源代码中,我有一个.net图像控件。该控件实质上抛出了一个标准的html图像元素,该元素需要一个图像url作为源。那么,如何让这个东西从我的对象显示我的图像属性呢?我不能简单地说myHTMLImageElement=myObject.image 谢谢您的时间。您可以使用MemoryStream类来保存图像的字节 using (MemoryStream m = new

我有一个嵌入图像的对象,可作为属性访问,例如myObject.image。此图像是作为嵌入资源存储在dll中的Gif。在我的aspx源代码中,我有一个.net图像控件。该控件实质上抛出了一个标准的html图像元素,该元素需要一个图像url作为源。那么,如何让这个东西从我的对象显示我的图像属性呢?我不能简单地说myHTMLImageElement=myObject.image


谢谢您的时间。

您可以使用
MemoryStream
类来保存图像的字节

using (MemoryStream m = new MemoryStream())
{
    myObject.image.Save(m, image.RawFormat); //u can use System.Drawing.Imaging.ImageFormat.Jpeg or whatever ur image type is
    ...
}
然后,您可以将
字节
数据转换为
Base64String
格式,并将其分配给
元素

myObject.image.Save
行之后,使用上面给出的
语句在相同的
中编写以下代码


确保您在img标记中设置了
runat='server'

如果您对图像进行base64编码,您可以使用数据URI作为图像源-我想我找到了一个很好的解决方案。我的嵌入图像公开了一个“保存”方法。因此,我只需将我的asp.net图像控件指向一个文件名,并在pageload上调用myObject.Image.Save(Server.MapPath(“.”+“\\myImage.gif”)。您是否希望网站中的此位置可以为您的代码编写?它可以为我的代码编写,是的,但这当然是一个合理的考虑和理由,足以让我想学习以更优雅的方式来做这件事。这看起来确实是一个更优雅的解决方案,但对我来说不起作用。首先,System.String中似乎没有ToBase64String()(至少在版本4框架中是这样),所以我在谷歌上搜索了一下将memorystream转换为base64字符串的方法,找到了Convert.ToBase64String(ms.ToArray())。所以我这样做了,然后像你说的那样将src属性设置为strBase64,但是结果不会显示图形,当我查看页面的源时,图像的src属性被设置为许多看起来像编码字符的垃圾,但它不会将它们转换为我的图像。
string strBase64 = System.String.ToBase64String(m.ToArray());
myImg.Attributes["src"] = strBase64;