最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

第二章 動(dòng)態(tài)創(chuàng)建圖象(未定稿)

by flamephoenix


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

$file = '/usr/local/etc/httpd/htdocs/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首先發(fā)送MIME頭說明(Content-Type),然后讀取文件內(nèi)容并輸出。這段程序?qū)?file變量和Content-Type類型略加修改就可以發(fā)送聲音或影像文件。
    那么怎樣把CGI程序創(chuàng)建的圖像嵌到頁(yè)面中呢?SSI是不行的,方法是用<img>標(biāo)簽,語法如:
    <img src="/cgi-bin/image.cgi">
    僅就顯示picture.gif這幅圖像而言,用上述的image.cgi是沒有什么意義的,更恰當(dāng)?shù)姆绞绞沁@樣使用:
    <img src="/images/picture.gif">
    但是,image.cgi可以擴(kuò)展功能來做更多的事。例如它可以從多個(gè)圖像文件中隨即地選擇一個(gè)來顯示,那么,每一次訪問該頁(yè)面時(shí)都會(huì)出現(xiàn)不同的圖像。
    計(jì)數(shù)器程序通常利用<img>標(biāo)簽的這一特性,尤其是那些不允許解析HTML和SSI的服務(wù)器特別實(shí)用。服務(wù)器端不解析HTML文件可以降低服務(wù)器的負(fù)載。
    此外,除了簡(jiǎn)單的裝載并顯示已有的圖像文件外,可以真正的動(dòng)態(tài)生成所需的圖像。你可以設(shè)計(jì)一個(gè)CGI程序根據(jù)不同的參數(shù)及用戶定義的一些細(xì)節(jié)來實(shí)時(shí)創(chuàng)建相應(yīng)的圖像(如圖表)并顯示。這種程序的復(fù)雜性在于圖像的生成而不在于將圖像輸出給瀏覽器。幸運(yùn)的是,有一些庫(kù)提供了這樣的接口,如Thomas boutell的gd圖像庫(kù),這是生成GIF圖像的一個(gè)出色工具,可以從http://www.boutell.com/gd來下載。它是用C語言寫的,但是有Perl接口庫(kù)gd.pm,還有基于gd支持多種語言的接口庫(kù)tgdfly。詳細(xì)情況見上述gd主頁(yè)。
    下面是一個(gè)簡(jiǎn)單的用位圖動(dòng)態(tài)生成圖像的計(jì)數(shù)器程序,對(duì)理解上述描述應(yīng)該會(huì)有所幫助。(源代碼下載
    您是第位訪問本網(wǎng)頁(yè)的人。

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

上一章 下一章 目錄

台南县| 铜川市| 阳西县| 靖安县| 和静县| 漯河市| 哈尔滨市| 丽水市| 丹棱县| 邵东县| 辽阳县| 铜山县| 彩票| 分宜县| 隆尧县| 嵩明县| 广灵县| 余干县| 龙泉市| 昭平县| 乃东县| 宜都市| 白玉县| 海南省| 黑水县| 安塞县| 黔东| 延吉市| 海原县| 客服| 安新县| 镇雄县| 浮梁县| 高邑县| 西宁市| 南开区| 柳林县| 闽清县| 昭苏县| 陆良县| 六安市|