Как отображать изображения в MemoryStream? - PullRequest
1 голос
/ 11 января 2012

У меня есть несколько изображений (в основном png и jpg), которые я храню в FileStream для SQL Server 2008. Я могу извлечь указанные изображения и сохранить их в MemoryStream.

У меня есть определенная веб-страница, на которой мне нужно отобразить изображение, которое находится внутри MemoryStream. Можно ли как-нибудь отобразить содержимое MemoryStream в теге изображения HTML (или, что еще лучше, в элементе управления ASP.NET Image)?

Ответы [ 2 ]

10 голосов
/ 11 января 2012

да,

  1. указывает источник изображения на обработчик ashx
  2. обработчик запросит изображение из базы данных
  3. записать байты в поток ответа и установить тип содержимого

HTML

<img src="loadimage.ashx?id=..."/>

добавить универсальный обработчик в ваш проект и загрузить изображение обработчик

class loadimage: ihttphandler
{
   public void Process(HttpContext context)
   {

        var id = context.Request["id"];
        var row = GetImageFromDb(id);

        var response = context.Response;
        response.AddHeader("content-disposition", "attachment; filename=" + row["anem of image"]);
        response.ContentType = row["mime type"].ToString(); //png or gif etc.
        response.BinaryWrite((byte[])row["image blob"]);
   }

   public bool Reuse { get {return true; } }
}
1 голос
/ 22 мая 2012

Я использую следующий код для получения изображения с удаленного URL в - MemoryStream - System.Drawing.Image

// Set image url
string imgURL = ("http://cdn.flikr.com/images/products/" + imageName);

// Get image into memory
WebClient lWebClient = new WebClient();
byte[] lImageBytes = lWebClient.DownloadData(imgURL);
MemoryStream imgStream = new MemoryStream(lImageBytes);

image = System.Drawing.Image.FromStream(imgStream);

if (image.Width >= 200)
{
    // do something
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...