In my code I create a bitmap dynamically, using c# and ASP.NET. Than I need to display it on the asp image control. There are anyway to do it whithout using handlers?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Using a ashx handler is better cause it works on all browsers and you can cache the output images on the client.
However if you must do it, images can be displayed inline directly using the <img>
tag as follows:
<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;
Yes, you could write the bitmap directly, but compressed formats(JPEG, GIF) are better for the web.
Note: Inline images don't work on older browsers. Some versions of IE had limitations of max 32KB size.