Отображение изображения в ASP.NET C # - PullRequest
1 голос
/ 13 января 2012

Я преобразую код Base64 в изображение и использую следующий способ для сохранения и отображения этого изображения.

var kpin = Base64ToImage(TextBox1.Text);
kpin.Save(@"e:\myim.png");
Image1.ImageUrl = @"e:\myim.png";

и класс

public Image Base64ToImage(string base64String)
{
    byte[] imageBytes = Convert.FromBase64String(base64String);
    MemoryStream ms = new MemoryStream(imageBytes, 0,
      imageBytes.Length);
    ms.Write(imageBytes, 0, imageBytes.Length);
    Image image = Image.FromStream(ms, true);
    return image;
}

, и этот процесс работает нормально, ноМне нужно, чтобы изображение не сохранялось на жестком диске.Как отобразить это изображение напрямую, без сохранения на жесткий диск и получения обратно.

Ответы [ 2 ]

1 голос
/ 13 января 2012

Вместо установки Image1.ImageURL на путь вашего изображения, вы можете вместо этого сделать одну из следующих вещей:

  1. Использовать тег img с данными Base64 непосредственно в нем - http://www.sweeting.org/mark/blog/2005/07/12/base64-encoded-images-embedded-in-html Не все браузеры поддерживают это.
  2. Создайте действие или веб-форму (в зависимости от того, используете ли вы ASP.NET MVC или нет), которая принимает в качестве входных данных все, что вам нужно для извлечения или создания закодированного Base64data, а затем установите заголовки ответа для обслуживания правильного типа контента (image / png или чего-то еще) и запишите изображение непосредственно в Response.OutputStream (или используйте ContentResult в ASP.NET MVC).Тонны примеров через Stackoverflow о том, как это сделать.

-M

0 голосов
/ 13 января 2012

Не беспокойтесь об объекте изображения, а просто сделайте это прямо:

public void Base64ToResponse(string base64String)
{
    Response.ContentType = "text/png"; //or whatever...
    byte[] imageBytes = Convert.FromBase64String(base64String);
    Response.OutputStream(imageBytes, 0, imageBytes.Length);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...