国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Image控件顯示以byte[]字節數組形式存在的圖片

2019-11-17 02:01:36
字體:
來源:轉載
供稿:網友

Image控件顯示以byte[]字節數組形式存在的圖片

工作中遇到了這樣的一個問題。起初覺得很簡單,獲得了圖片的byte[]后,可以將其轉換成內存中的圖片對象(如System.Drawing.Image),而后賦給頁面的Image控件。嘗試后才發現這樣根本做不到。搜索網絡,整理出兩種實現的方法。

示例代碼在此!

一、引入一新頁面.aspx,Image控件URL指向該頁面

該頁面ImageSource.aspx只完成一件事:將代表圖片的byte[]寫入http輸出流。

1 Response.BinaryWrite(imgBytes);

該頁面的執行效果即只顯示圖片本身。

使Image控件的ImageUrl屬性指向該頁面。

1 imgPicture.ImageUrl = string.Concat("ImageSource.aspx?name=", "Lighthouse");

功能實現。該種方式比較簡單,但是弊端就是引入了一個貌似多余的頁面ImageSource.aspx。為避免這一點,便有了第二種方法。

二、引入HttpHandler,專門處理圖片加載的請求

Image控件依然通過ImageUrl屬性指向一頁面url,但該頁面并不真實存在。該請求交由Handler處理。

1 <httpHandlers>2     <add verb="*" path="ImageVirtualSource.aspx" type="ImageBytesShowSample.ImageVirtualSourceHandler"/>3 </httpHandlers>

ImageVirtualSourceHandler中完成的工作基本與先前ImageSource.aspx中無異,主要就是將圖片byte[]輸出到http流。

1 public void PRocessRequest(HttpContext context)2 {3     var imgName = context.Request.QueryString["name"];4     var lightImg = Image.FromFile(string.Concat("E://CSPro//ImageBytesShowSample//ImageBytesShowSample//", imgName, ".jpg"));5 6     Byte[] imgBytes = ImageToBytes(lightImg);7 8     context.Response.BinaryWrite(imgBytes);9 }

特別注意:

若使用集成環境運行(VS調試運行),<system.web>下<httpHandlers>配置不被識別。請改為在IIS經典模式下運行或者將configuration移到<system.webServer>下。

1 <system.webServer>2   <handlers>3     <add name ="virtualImageHandler" verb="*" path="ImageVirtualSource.aspx" type="ImageBytesShowSample.ImageVirtualSourceHandler"/>4   </handlers>5 </system.webServer>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梓潼县| 苍梧县| 通渭县| 桐梓县| 济宁市| 如东县| 彭州市| 社旗县| 淅川县| 临猗县| 鄂伦春自治旗| 馆陶县| 灵川县| 华亭县| 金门县| 新巴尔虎右旗| 新宁县| 宜都市| 马龙县| 江永县| 图木舒克市| 奉化市| 平昌县| 黎城县| 琼结县| 舞钢市| 伊金霍洛旗| 津市市| 德化县| 吉水县| 清河县| 明溪县| 砚山县| 陵水| 乌海市| 盘山县| 潼南县| 普陀区| 吴川市| 白城市| 洛南县|