В моем коде я создаю растровое изображение динамически, используя C # и ASP.NET. Чем мне нужно отобразить его в элементе управления изображением asp. Есть ли способ сделать это без использования обработчиков?

13
user2042023 6 Фев 2013 в 07:20

1 ответ

Лучший ответ

Лучше использовать обработчик ashx, потому что он работает во всех браузерах, и вы можете кэшировать выходные изображения на клиенте.

Однако, если вы должны это сделать, изображения можно отображать непосредственно в строке с помощью тега <img> следующим образом:

<img src="data:image/gif;base64,<YOUR BASE64 DATA>" width="100" height="100"/>

ASPX:

<img runat="server" id="imgCtrl" />

CS:

MemoryStream ms = new MemoryStream();
bitmap.Save(ms, ImageFormat.Gif);
var base64Data = Convert.ToBase64String(ms.ToArray());
imgCtrl.Src = "data:image/gif;base64," + base64Data;

Да, вы можете написать растровое изображение напрямую, но сжатые форматы (JPEG, GIF) лучше подходят для Интернета.

Примечание. Встроенные изображения не работают в старых версиях браузеров. Некоторые версии IE имели ограничение на максимальный размер 32 КБ.

25
nunespascal 6 Фев 2013 в 08:18
Спасибо! Как я получаю свои данные Base64 ,, извините = / Если это сложно объяснить, просто скажите мне, и я найду способ.
 – 
user2042023
6 Фев 2013 в 08:11
Не могли бы вы объяснить, как это сделать, используя обработчик ashx?
 – 
aiden87
20 Ноя 2016 в 17:50
Код будет таким же. Вам нужно просто вывести заголовки и байтовые данные прямо из обработчика. Комментарии - это здорово, чтобы делиться кодом. Если у вас есть вопрос по этому поводу, укажите мне на него, и я могу вставить туда код.
 – 
nunespascal
23 Ноя 2016 в 18:19