在我的数据库我已存储的图像中的“图像”的数据类型,显示为二进制码。 我现在想从一列检索所有图像和diplay他们用C#一个asp.net页面上。
databaseDataContext db = new databaseDataContext();
var images = from Picture p in db.Pictures
select p.pictureThumb;
然后我用这个:
foreach (Picture p in images)
{
galleryImages.Controls.Add(p);
}
但是,这并不工作,因为二进制不能被转换为图片。 我用Google搜索,发现这个,我要转换为字节,然后对图像? 我无法找到如何做,虽然例子。
这应该这样做:
databaseDataContext db = new databaseDataContext();
var images = from p in db.Pictures
select Image.FromStream(new MemoryStream(p.pictureThumb.ToArray());
foreach (Image image in images)
{
galleryImages.Controls.Add(image);
}
需要注意的是Image.FromStream
采用流的所有权-它只是一个MemoryStream
,无论如何,但请确保您处理的图像,由于种种原因。
编辑:啊......我没有意识到这是为ASP.NET。 这使得事情更难 - 因为HTML是要包含URL,然后你就需要能够稍后获取数据。
做一个图片有某种类型的ID? 如果是这样,撷取,而不是实际的数据,然后建立一个URL,它能够成为基于ID的任何缩略图(从数据库中获取它,只是用适当的内容类型的服务的话)。