0

在一个 ASP.NET 应用程序(使用框架 2.0)中,这个应用程序的 ORM 是 Subsonic 2.2,这是我第一次使用它。

我有一个从 URL 检索到的图像,并且我有一个 HttpWebresponse 对象,我已将其转换为图像,如下所示:

    string uri = ...;
    HttpWebRequest lxRequest = (HttpWebRequest) WebRequest.Create(uri);
    HttpWebResponse lxResponse = (HttpWebResponse) lxRequest.GetResponse();
    System.Drawing.Image image = System.Drawing.Image.FromStream(lxResponse.GetResponseStream());

在 Sql Server 中,我创建了一个 Image 列(可以是任何其他二进制格式,这不是问题),我想将我的图像写入其中。我也想知道如何从列中读取,以测试图像是否已正确保存。

任何帮助表示赞赏。谢谢。

4

2 回答 2

1

对于image列,Subsonic 创建一个byte[]属性。

因此,您必须将数据(System.Drawing.Image在本例中)与字节数组进行转换。

其他 网站对此进行了覆盖,无耻地复制:

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
 MemoryStream ms = new MemoryStream();
 imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
 return  ms.ToArray();
}

public Image byteArrayToImage(byte[] byteArrayIn)
{
     MemoryStream ms = new MemoryStream(byteArrayIn);
     Image returnImage = Image.FromStream(ms);
     return returnImage;
}
于 2011-10-24T14:48:45.200 回答
0

看过Read and write SQL image data,这可能对你有帮助

于 2011-10-24T14:01:00.597 回答