投放期间使用了错误的Image类;如何正确执行?

问题描述

| public Image图片{get;组; }
Image=(Image)randomImageFromCommentsClass.Image;
我得到这个: 无法将System.Drawing.Image转换为System.Web.UI.WebControls 我认为我导入了错误名称空间(System.Drawing)。这可能是错误的。我想做的是将图像类型从数据库转换为图像对象。
public class Comments
{
  public Image Image { get; set; }
      Image = dbnull.Value.Equals(dr[\"Avatar\"]) ? null: (Image)dr[\"Image\"];
上面的图像属性来自Visual Studio 2010中的其他类代码文件。 演员表以某种方式失败..我该如何解决?     

解决方法

        除非您要投射的对象是另一个对象的实例,否则绝对不可能进行投射。 您可以使用此代码段将字节数组隐藏到Image中:
 public Image byteArrayToImage(byte[] byteArrayIn){
     MemoryStream ms = new MemoryStream(byteArrayIn);
     Image returnImage = Image.FromStream(ms);
     return returnImage
}
要使用WebControl显示动态创建的图像,您将需要处理程序在此处提供更多信息: 使用HTTP处理程序提供动态内容     ,        如果您谈论的是SQL \的Image数据类型,那么这些图像以
byte[]
格式存储,因此您将需要将数据库中的数据放入byte []变量中,然后使用
FileStream
在您的fileSystem中创建一个新的临时Image文件,然后分配它可以应用于任何图像控件或您想要执行的任何操作。 您是否正在尝试将数据库中存储的图像分配给ASP.NET中的图像控件? 我不认为有任何方法可以将Byte []转换为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
    ,        本文介绍如何创建一个Image控件,该控件将直接从内存中接受图像,而无需文件保存或处理程序。希望对您有所帮助。 http://www.eggheadcafe.com/tutorials/aspnet/e1a14e2c-e746-4bed-a552-24c632bd2709/aspnet-inmemory-image-control-with-builtin-resizing-of-posted-file.aspx     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...