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

首頁 > 編程 > .NET > 正文

在ASP.NET中動態生成圖形(轉)

2024-07-10 12:58:14
字體:
來源:轉載
供稿:網友
在asp.net中動態生成圖形

.net有一個很靈巧的特性,就是可以編寫代碼生成動態圖形,然后將生成的圖形保存在磁盤上或者直接將其發送到客戶端的瀏覽器。

原理

用.net生成圖形的功能封裝在system.drawing名稱空間中,它支持多種圖形文件格式,包括:jpeg、gif、png、tiff、bmp、photocd、flashpix、wmf、emf和exif。

創建這些圖形的通用機制是構造一個bitmap(位圖)對象,它為要創建的圖形提供了內存空間。然后,就可以調用它的“save”方法,將其保存在磁盤,或者將其發送到任何.net的輸出流中。asp.net通過response.outputstream屬性揭示.net輸出流,這意味著你可以直接將圖形的內容發送到瀏覽器,而不用將其保存到磁盤中。

例如,在vb中,可以編寫這樣的代碼:

' create in-memory bitmap of jpeg
dim mychartengine as new chartengine
dim stockbitmap as bitmap = mychartengine.drawchart(600, 400, mychartdata)
' render bitmap stream back to browser
stockbitmap.save(response.outputstream, imageformat.jpeg)

如果用的是一個aspx頁面實現這個目的,就要同時設置適當的http contenttype(內容類型)頭文件,這樣瀏覽器就不會將頁面內容解釋為html,而是解釋為一個圖形。可以通過代碼設置response.contenttype屬性,或者是在頂層頁面指令上設置新的“contenttype”屬性來實現這一點:

<%@ page language="vb" contenttype="image/jpeg" %>

注意:asp.net的輸出緩存功能對文本內容和二進制輸出都奏效。這樣,如果你正在從一個頁面動態生成圖形,就可以很容易地使用輸出緩存指令,從而避免在各個請求上都重新生成圖形。要注意圖形的生成有可能是很麻煩的,因此我強烈推薦你使用這一功能。比如,可以用下面的指令每隔60秒對生成的圖形進行輸出緩存:

<%@ page language="vb" contenttype="image/jpeg" %>
<%@ outputcache duration="60" %>

生成股票圖形例程

為了給你提供一個生成圖形的完整舉例,在這里包含了一個簡單的股票圖形生成樣本代碼。請注意其中股票的價格并不是真實的,只是我想象出來的。樣本代碼使用了一個定制的“chartengine”類,它可以將建立一個普通圖形所要求的邏輯封裝起來。你應該可以使用這個組件來制作任何定制圖形,它并不是只局限于股票數據的。

在樣本代碼中,隨便你想要使用哪些都可以,想要怎樣使用都可以,也可以隨便將其貼在文章的任何地方,以及其它樣本中。

要想運行這個樣本,將以下內容分別保存為文件放到iis的一個應用程序vroot下:請看源碼。
然后,在命令行中鍵入以下語句:

mkdir bin
csc /t:library /out:bin/chartgen.dll chartengine.cs /r:system.web.dll /r:system.winforms.dll /r:system.drawing.dll /r:system.dll

chartengine被編譯后,點擊stockpicker.aspx頁面運行這個樣本。這樣,也就設置了一個指向imagegenerator_vb.aspx 頁面的<img>標記,就是它來進行實際的圖形生成工作。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 忻城县| 秦皇岛市| 辽阳市| 南汇区| 磐安县| 兰西县| 新巴尔虎右旗| 江西省| 玛曲县| 松滋市| 津市市| 通化市| 赞皇县| 噶尔县| 泗水县| 精河县| 葫芦岛市| 霍林郭勒市| 万盛区| 普兰店市| 北安市| 恩施市| 西丰县| 长沙市| 洪泽县| 巴里| 涞水县| 收藏| 彭阳县| 寿阳县| 丹凤县| 邵阳县| 东丰县| 龙州县| 二连浩特市| 深州市| 寿光市| 石阡县| 甘孜县| 石阡县| 武冈市|