国产探花免费观看_亚洲丰满少妇自慰呻吟_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>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泌阳县| 奉新县| 永昌县| 清镇市| 三原县| 纳雍县| 长汀县| 香河县| 米脂县| 秦皇岛市| 衡阳县| 尉氏县| 翁源县| 广宁县| 昌图县| 西盟| 南川市| 鹰潭市| 马边| 高安市| 察雅县| 贡山| 馆陶县| 交口县| 达拉特旗| 五家渠市| 当阳市| 团风县| 绍兴市| 方正县| 平原县| 栾城县| 沙田区| 垫江县| 政和县| 黄龙县| 区。| 尚义县| 邮箱| 廊坊市| 桓仁|