Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.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# 铸造过程中使用的图像类别不正确;我如何正确地做它?_C#_Asp.net_Image - Fatal编程技术网

C# 铸造过程中使用的图像类别不正确;我如何正确地做它?

C# 铸造过程中使用的图像类别不正确;我如何正确地做它?,c#,asp.net,image,C#,Asp.net,Image,公共映像映像{get;set;} Image=(Image)randomImageFromCommentsClass.Image; 我明白了: 无法将System.Drawing.Image转换为System.Web.UI.WebControl 我想我导入了错误的名称空间(System.Drawing)…这可能是错误的。我试图做的是将图像类型从数据库转换为图像对象 public class Comments { public Image Image { get; set; }

公共映像映像{get;set;}

Image=(Image)randomImageFromCommentsClass.Image;
我明白了:

无法将System.Drawing.Image转换为System.Web.UI.WebControl

我想我导入了错误的名称空间(System.Drawing)…这可能是错误的。我试图做的是将图像类型从数据库转换为图像对象

public class Comments
{
  public Image Image { get; set; }
      Image = DBNull.Value.Equals(dr["Avatar"]) ? null: (Image)dr["Image"];
上面的图像属性来自visual studio 2010中的其他类代码文件


不知怎的,强制转换失败了。我该如何修复它?

除非您正在强制转换的对象是另一个对象的实例,否则您肯定无法强制转换

您可以使用此snipet将字节数组转换为图像:

 public Image byteArrayToImage(byte[] byteArrayIn){
     MemoryStream ms = new MemoryStream(byteArrayIn);
     Image returnImage = Image.FromStream(ms);
     return returnImage
}
要使用WebControl显示动态创建的图像,您需要一个处理程序更多信息:


如果您谈论的是SQL的图像数据类型,那么这些图像将以
字节[]
格式存储,因此您需要将数据库中的数据转换为byte[]变量,然后使用
FileStream
在文件系统中创建一个新的临时图像文件,然后将其分配给任何图像控件或任何您想要执行的操作

您正在尝试将存储在数据库中的图像分配给ASP.NET中的图像控件吗

我认为没有任何方法可以将字节[]转换为System.Drawing 下面是我使用的解决方案:

byte[] ImageData;
string filePath = @"~\Image.jpeg";  //path or temporary Image
using (con)
{
    con.Open();
    SqlCommand getImageCmd = new SqlCommand("/* your SQL query to get Image from database*/ ", con);
    ImageData = (byte[])getImageCmd.ExecuteScalar();
    con.Close();
}
FileStream fs = new FileStream(filePath, FileMode.OpenOrCreate);
using (fs)
{
    foreach (byte b in ImageData)
    {
        fs.WriteByte(b);
    }
    fs.Flush();
    fs.Close();
}

ImageControl.ImageUrl = "~/Image.jpeg"; // assign that temp Image to Image Control

本文介绍如何创建一个图像控件,该控件将直接从内存接受图像,而无需保存文件或处理程序。希望对你有帮助


是的,它听起来确实是个错误的名称空间。您可以使用完全限定的版本。。。只需在类型中包含名称空间。数据库中的映像的类型是什么?它是属于绘图还是WebControl名称空间?它两者都不属于,图像以字节数组的形式存储在数据库中。lol..要将字节数组转换为图像吗?!?从绘图类,然后把它放到图像网络控制?好的。因此,这将重新运行一个图像,我将能够铸造到绘图。图像。。。如何将Drawing.Image转换为WebControl.Image?您不能直接将Drawing.Image转换为WebControl。您将需要一个处理程序。我用这方面的信息编辑了我的帖子。我尝试这样做1)从数据库中取出图像2)将其转换为图像绘图3)将其转换为web控件。。或者,如果有捷径,可以简单地将其转换为绘图图像。我会立即尝试。稍晚一点谢谢你给我指路