人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

CGI教學:第二章 動態創建圖像

CGI教學:第二章 動態創建圖像

更新時間:2022-08-25 文章作者:未知 信息來源:網絡 閱讀次數:

“動態文檔”不僅指文本,CGI程序可以創建圖象、聲音等各種媒體。你只須輸出相應的MIME頭、一行空行及原始數據即可。
下例的image.cgi將裝載一個GIF圖像文件并送到瀏覽器顯示:
#!/usr/bin/perl

$file = '/usr/local/etc/httpd/htdocshttp://edu.chinaz.com/images/picture.gif';

print "Content-Type: image/gif\n\n";
open(GIF,"<$file") || die "Can't open GIF\n";
while (read(GIF,$buffer,16384)) {
print $buffer;
}
image.cgi首先發送MIME頭說明(Content-Type),然后讀取文件內容并輸出。這段程序對$file變量和Content-Type類型略加修改就可以發送聲音或影像文件。
那么怎樣把CGI程序創建的圖像嵌到頁面中呢?SSI是不行的,方法是用<img>標簽,語法如:
<img src="/cgi-bin/image.cgi">
僅就顯示picture.gif這幅圖像而言,用上述的image.cgi是沒有什么意義的,更恰當的方式是這樣使用:
<img src="http://edu.chinaz.com/images/picture.gif">
但是,image.cgi可以擴展功能來做更多的事。例如它可以從多個圖像文件中隨即地選擇一個來顯示,那么,每一次訪問該頁面時都會出現不同的圖像。
計數器程序通常利用<img>標簽的這一特性,尤其是那些不允許解析HTML和SSI的服務器特別實用。服務器端不解析HTML文件可以降低服務器的負載。
此外,除了簡單的裝載并顯示已有的圖像文件外,可以真正的動態生成所需的圖像。你可以設計一個CGI程序根據不同的參數及用戶定義的一些細節來實時創建相應的圖像(如圖表)并顯示。這種程序的復雜性在于圖像的生成而不在于將圖像輸出給瀏覽器。幸運的是,有一些庫提供了這樣的接口,如Thomas boutell的gd圖像庫,這是生成GIF圖像的一個出色工具,可以從http://www.nease.net/tppmsgs/msgs0.htm#29來下載。它是用C語言寫的,但是有Perl接口庫gd.pm,還有基于gd支持多種語言的接口庫tgd和fly。詳細情況見上述gd主頁。
下面是一個簡單的用位圖動態生成圖像的計數器程序,對理解上述描述應該會有所幫助。(源代碼下載)
您是第位訪問本網頁的人。

附:GIF的說明
現在流行著一種趨勢,即遠離GIF格式而采用Portable Network Graphic格式(PNG),這種變化出于技術和法律兩個方面的考慮。1995年1月1日,Unisys聲稱他們有權要求使用LZW壓縮算法的軟件公司要經過他們的許可或付給他們報酬,因為他們擁有專利使用權。而GIF格式正是使用這種算法。所以,你所編寫的任何用于商業應用程序中的GIF圖像(包括以CGI/WWW為基礎的那些文件),都必須購買許可證或支付費用。許多軟件包不再壓縮GIF文件(這樣會使圖像變得很大),或者把GIF文件及其支持軟件全部去掉。PNG使用非專利的壓縮算法,從而避免了這些麻煩。在技術方面,PNG提供了較好的壓縮算法(無損失,像GIF一樣,但不像JPEG。JPEG在壓縮時會丟失數據)、二維交互以及24位和48位真彩支持。現在,很少有瀏覽器支持內插的PNG圖像,但不久的將來,這種情況很可能會改變。GD圖形庫文件說明了PNG支持即將來臨。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 读书| 阜新市| 无棣县| 民县| 仁怀市| 崇义县| 六安市| 武乡县| 民丰县| 那曲县| 伊吾县| 绵阳市| 临武县| 高邑县| 贵阳市| 安远县| 突泉县| 龙州县| 吕梁市| 眉山市| 会理县| 满洲里市| 呼玛县| 巴东县| 新宾| 滨海县| 平舆县| 定日县| 洪湖市| 颍上县| 安平县| 温州市| 大化| 共和县| 张家口市| 田阳县| 西峡县| 营口市| 揭西县| 泰顺县| 浦县|