cgi技术

2024-04-17

cgi技术(精选6篇)

篇1:cgi技术

当代影视作品中CGI技术的应用

——观影片《恐龙》有感

摘要:全新的电影银幕形象带给我们的是新的审美和思考。这主要得益于从19世纪发展起来的电影科学技术(光学的、机械学的、光化学的直到今天的现代数字技术)的发展。数字技术在电影制作中的应用,是电影领域最具革命性的变革之一。《恐龙》这部数字技术的巅峰之作,他们不留痕迹地把拍摄和三维动画融为一体,达到出神入化的境界,并且使像真人一样说话的恐龙和人们熟悉的迪斯尼传统风格有机地结合在一起。它给我们带来了新的启示:数字技术在电影制作中的应用,是电影领域最具革命性的变革之一,必将产生深远的影响!数字技术的空前发展, 不但引发了影视制作技术新的革命, 也对传统电影理论提出了挑战, 促使我们建立崭新的电影观念。

关键词:《恐龙》CGI技术应用前景

看了电影《恐龙》,不管是真实情景,还是电脑特技效果,都让人非常震撼。它是一部视觉震撼力很强的电影,尤其是它所运用的CGI技术,给我留下深刻印相象

较于《侏罗纪公园》里那些既庞大又狰狞的远古生物,《恐龙》里的主角(当然就是恐龙本身)显得可爱而亲切,他们真正变成了孩子们的朋友。跟大多数迪斯尼电影里将动物拟人化的特色一般,这些恐龙会讲话、有喜悦悲伤、能思考,几乎就像是一个人类社群。而更不可思议的是,经过计算器特效处理的恐龙世界,呈现在大屏幕上的气势着实令人叹为观止

整部影片1300多个特效镜头使之成为同类影片中最为复杂、最为壮观的一部。片中共展示了30多种史前生物,从12英寸长的小型恐龙到100吨重的腕龙。它的数字特效使观众完全沉浸于亦真亦幻的奇妙世界之中。除视觉上的冲击外,影片还给各种不同的生物角色赋予人性的情感,使我们在倍受感动画的同时感受这部电影强劲、震撼的电脑特技。当然,这部电影最引人注目的地方主要在于大部分背景画面使用了从世界各地拍摄到的实景,经过加工,它们看起来更像主人公所生活的环境。这听起来就是CGI技术的魅力,它巧妙地将现实生活中的美景与高科技手法结合了起来,引发了我们很多思考。

那什么是CGI技术呢?

CGI技术,即电脑生成图像技术(Computer—Generated Imaging),简称CGI,有人把它称之为“高宝真”数码技术。其技术过程是通过电脑将影像分解成像素或直接采用影素信息捕捉手段由模拟转向数码,在二度创作中生成你所希望的任何物体。一方面CGI技术与传统动画相比更具备写实主义风格,它极力追求创造一个完全令人信服的虚拟人物形象或事物;另一方面CGI技术希望能够比真实更真实,比戏剧更戏剧。CGI技术不仅用于创造一些奇幻的星球或者超现实的未来城市,同时还期望能获得和照片一样逼真的效果。CGI技术是一个用于定Web服务器与外部程序之间通信方式的标准,使得外部程序能生成HTML、图像或者其他内容,而服务器处理的方式与那些非外部程序生成的HTML、图像或

其他内容的处理方式是相同的。因此,CGI程序册仅使你能生成表态内容而能生动态内容。使用CGI的原因在于它是一个定义良好并被广泛支持的标准,没有CGI就难以实现动态的Web页面。

对于《恐龙》这部影片说他是迪斯尼公司在好莱坞使用数字技术拍摄的影片中的巅峰之作。我认为理由有一下:

一.在制作这部片子时,设计规模之大是空前的,设计出的各种恐龙模型也是规模庞大的。

为拍摄《恐龙》一片,工作人员共花费了320万个工作时,该片的全部素材达1亿个文件,约45兆兆字节之巨,足可装满7万张光盘。该片工作室内共有250名专职程序员和300名设计人员,他们平均每周工作3万个小时,最高时曾达到6万小时。软件组成员共编写了7万行代码,全部打印出来需要1.17万页纸,相当于一部25卷、每卷468页的百科全书。为制作出动画场面,摄制组选择了多种成品软件的组合,无论是角色造型设计还是角色动画制作剧组都投入了大量的人力物力,在工作人员的挑剔和疯狂的执着后才有了这部经的起寻找细节来考察它的制作水准的片子。而且在本片中共展示了30多种史前生物,从12英寸长的小型恐龙到120英尺高、100吨重的腕龙。此外,共有48名动画设计师参与了《恐龙》的制作。其中三分之一具有传统手绘动画经验,三分之一曾经从事静格拍摄,而另外三分之一则有电脑动画背景

二.巨额的金钱投入以及最专业的人员配备。

迪斯尼影片公司2000年投资达到3亿5千万美元的巨作《恐龙》堪称好莱坞有史以来最具视觉震撼力的电影数字特效,使观众完全沉浸于亦真亦幻的奇妙世界之中。据报道,在1998年,早在斯皮尔伯格拍摄《侏罗纪公园》时,《恐龙》的动画影片便开始酝酿和策划。原本计划中是打算请《本能》的导演保罗·范·赫文执导,因此,电影内容也准备由真人演出,但由于恐龙本来的生存年代就是史前时代,所以迪斯尼内部高层决定利用现代科技将恐龙时代复原,于是利用电脑动画将这种生活在六千五百万年前的动物活生生地搬到观众眼前。

全片的1300个特效镜头使之成为迪斯尼最为复杂、最为壮观的一部动画巨片。本片中共展示了30多种史前生物,从12英寸长的小型恐龙到100吨重的腕龙。

这部电影的制片是Pam Marsden,合作制片是Barker Bloodworth。如此规模浩大的制作,《恐龙》一片是由两个导演共同负责的。Eric Leighton导演动画部分,Ralph Zondag负责故事和完成。

三,仿真和创真技术的多方面应用。

《恐龙》中每分每秒每个镜头都和CGI扯上关系﹐还要加上实景拍摄。由十二寸长的蜥蜴到长一千二百尺﹑重一百吨的腕龙﹐加上超过三十种史前恐龙品种﹐均会透过一千三百个复杂的特技镜头展现在银幕上。实景方面﹐摄制组花了十八个月时间﹐走遍世界各地,如:佛罗里达州、委内瑞拉、澳大利亚、夏威夷、洛杉矶、加州的死谷等地寻找合适的外景。然后再扫描、合成、修饰,创造出白垩纪的景象。为了影片的拍摄制作,摄制组动用了四部广角镜头摄像机。采用了三维分镜头中的数据来控制摄像机。拍摄好的现场俯视画面会再植入到三维场景中去,这样可以帮助技术导演和动画师将CGI造型准确地合成进实拍的部分中去。为了将人物和地面结合在一起,动画师有时用二维的方法生成阴影,还使用Rotoscope技术。为了让恐龙的脚底看上去像走在铺满石头的不平的地面上,技术导演通常用变形的方法,有时如果很困难,干脆将脚藏在石头中;当恐龙从地上抬起脚时会露出脚印来,纹理绘画师们就要在沙地上加上脚印。为了给

角色布置灯光,负责灯光的Chris Peterson用迪斯尼的专利工具“Light Tool”,效果就好像他们是背景的一部分。

从它的制作技术方面分析完之后,我还想从哲学以唯物辩证的角度进行预测。俗话说:“常人之心,数日方知;哲人之心,世纪方知。”那么《恐龙》这部电影中CGI技术的应用将对我们今后的影视业的发展体到什么样的作用呢?

迪斯尼称《恐龙》代表着计算机特技在电影中的应用又向前迈出了重要的一步。这部耗资3.5亿美元制作的影片,是世界上最早一部实景拍摄加数码影像合二为一的电影。

这部电影的计算机特技震撼力强劲,我们还没有看到哪部影片可以与之相比。除了CGI,大部分背景画面使用了从世界各地拍摄到的实景,经过加工,它们看起来更像主人公所生活的史前时代森林、沼泽地等等。这听起来像是对CGI和实景更有创意、更巧妙的运用,因为他们将现实生活中的美景与高科技手法结合了起来。

这部影片的产生不仅仅是一部电影那么简单,它是一项重大影视变革的序幕,是推动影视业突变的导火线。它不但带来了全新的制作手段,改变了传统的电影制作工艺;而且对电影的本质及创作观念都产生了强烈的冲击。一方面,对电影本质的再认识,电影作为纪录媒体的本质正在数字化的冲击下悄然发生革命。我坚信,在未来的发展趋势中,CGI技术在数字化方面的应用会越来越广泛,影视业也将逐步向数字化转变。另一方面,数字技术使虚幻的世界和我们认为真实的世界结合在一起,达到了全新意义上的超真实境界。而这种超真实已经在我们的现实生活中得到了应用,这也将是未来的有一个重要发展潮流。而在新旧电影技术的冲突下《恐龙》也会以他独有的划时代意义,在世界电影史上留下浓墨重彩的一笔。

看过了恐龙走过时的尘土飞扬,还有那溅起的水花.连木头的颤动,都那么逼真,让我真正感受到了CGI在影视中的作用.电影业界风云变幻,IT技术日新月异。我们有理由相信,全三维CGI电影会具备向传统意义上的影片发起挑战的实力。

一部好的影片不仅它现在绽放光辉,而且随着时间的推移,它对社会的贡献会越来越深远,它的魅力也会更加张显。我想《恐龙》一片应该会是这样一部具有划时代意义的影片!

篇2:cgi技术

——观《恐龙》有感

没看这部电影,也没听老师介绍CGI技术的时候,我以为《恐龙》这部电影就是迪斯尼公司出品的一部纯粹的商业动漫。听过介绍并完完整整看过这部电影之后,我才深深的被震撼了,没想到CGI技术的运用,使得这部电影留给我如此之深的印象。

有人说《恐龙》堪称好莱坞有史以来最具视觉震撼力的电影之一,因为CGI技术的使用使得观众完全沉浸在亦真亦幻的奇妙世界之中。据说,全片有1300个特效镜头,所以它当之无愧成为了同类影片中最为复杂也最为壮观的一部。有了这些特效与现实背景相结合,这部电影才能将观众带进另一个充满惊险刺激的恐龙时代。

电影恐龙讲述的在6500万年前的白垩纪晚期。生活在一个世外桃源般的小岛上的一头禽龙——阿拉达,从没有见过自己的同类,一群狐猴将它抚养长大。在一场突如其来的流星雨毁灭了小岛之后,阿拉达和几只狐猴逃脱了这场劫难漂泊大陆,并且加入了一群四处寻找栖身之所的恐龙队伍。水源和食物的短缺、以及嗜血的食肉恐龙的不断侵袭时刻威胁着他们的生命。具有创新思想并对弱小同伴表示同情的阿拉达与冷酷而固执的手冷克龙和它忠诚的手下布鲁顿不可避免地发生了冲突。在克龙的妹妹尼拉的支持下,阿拉达向传统发起了挑战并证明了适应环境并互相团结才是最好的生存之道。

谈到恐龙题材,不得不提到斯皮尔伯格的成名作之一—《侏罗纪公园》,这部电影是具有一定颠覆意义的,讲述的是现代人复制恐龙最终自食恶果。这部电影很显然是以情节取胜,影片中描绘的多是庞大狰狞的恐龙形象,很容易就能引起观众紧张的情绪。而《恐龙》则不同,其主角一只禽龙却显得可爱亲切,故事也感人至深。我想其中很大的原因是因为电影出品公司——迪斯尼一贯的风格:温暖、友善,充满希望,它们将动物拟人化,像人类一样,喜怒哀乐,说话,思考,甚至作出很多丰富生动的表情。从电影主要内容的简介也许就可以看出来。

在这部影片中,实景拍摄和三维动画被不留痕迹的融为一体,真正达到出神入化的境界;而且,人们熟悉的迪斯尼传统风格和片中的恐龙也被有机的结合在一起。这样的结合带给我们新的启示:数字技术在电影制作中的应用,是电影领域最具革命性的变革之一,它的出现也必将对电影事业的发展产生深远的影响。

回过头来仔细观看了《侏罗纪公园》,对比可以看到,恐龙形象的制作比《恐龙》中形象的制作粗糙很多,片子开始,大恐龙用脚驱赶调皮的小恐龙,画面是一窝恐龙蛋和那只恐龙脚的特写,仔细观察这只脚,它的表皮、纹理、肌肉、以及在运动时这些部分细微的变化,都十分的精确和科学,绝非是一个画家能单独能办到的。其次,《恐龙》片中那青翠的山林、清澈的溪水、皲裂的土地等虽然都是计算器特效创造出来的画面,但那画面里对历史的再造是几可乱真的。而看《侏罗纪》,如果你不被情节吸引,认真观察恐龙的细节,你就会发现,那种亦真亦幻的感觉是没有的。可能因为当时技术相对较为落后的缘故。听过老师的讲解之后,才了解到,电影所带给我们那些奇妙的、身临其境的感觉都得归功于CGI技术的运用。那到底什么是CGI技术呢?

CGI技术,即电脑生成图像技术(computer—generated imaging),简称CGI,有人把它称之为“高保真”数码技术。其技术过程是通过电脑将影像分解成像素或直接采用影素信息捕捉手段由模拟转向数码,在二度创作中生成你所希望的任何物体。一方面CGI技术与传统动画相比更具备写实主义风格,它极力追求创造一个完全令人信服的虚拟人物形象或事物;另一方面CGI技术希望能够比真实更真实,比戏剧更戏剧。CGI技术不仅用于创造一些奇幻的星球或者超现实的未来城市,同时还期望能获得和照片一样逼真的效果。CGI技术

是一个用于定Web服务器的与外部程序之间通信方式的标准,使得外部程序能生成HTML、图像或者其他内容,而服务器处理的方式与那些非外部程序生成的HTML、图像或者其他内容的处理方式是想通的。因此,CGI程序册仅使你能生成表态内容而能生成动态内容。使用CGI技术的原因在于它是一个定义良好并被广泛支持的标准,没有CGI就难以实现动态的Web页面。

至今为止,CGI技术已经被广泛地运用于动画片的创作中,成为其发展的又一新阶段。动画片创作经历了手绘动画、计算机辅助动画、计算机生成动画这三个发展阶段。而计算机生成动画就是我们前面所说的CGI技术。从20世纪90年代开始,每年获得奥斯卡最佳视觉效果奖的影片没有不采用CGI技术的。CGI技术无需摄影机的介入,二十依靠计算机创造出的一种“虚拟的现实景象”,一种亦真亦幻的三维空间。

不过纯粹利用CGI技术制作动画影片效果是很轻微的,必须结合实景拍摄才能达到最佳效果。据说,为了增强该片场景的真实感,两支外景队在18个月的时间里周游世界,为这部融科学事实与迪斯尼丰富想象力于一身的神话故事抓取各种各样奇幻的背景。加州死亡谷、澳洲坎贝尔国家公园、弗罗里达的沼泽、夏威夷两大岛、委内瑞拉国家森林公园、西萨摩亚群岛等14个景点。这些景色由电脑控制的摄像设备拍下的实景被送回位于伯班克的工作室,由一批数字专家一帧一帧地分离出来,再与电脑创造的史前生物天衣无缝地融合在一起。皮肤和肌肉运动模拟技术的突破也使得这些动物的一举一动全都惟妙惟肖,极其真实可信。

这听起来像是对CGI和实景更有创意、更巧妙的运用,因为他们将现实生活中的美景与高科技手法结合了起来。影片中中,有迪斯尼擅长的友谊刻画,当然也有着恐龙吃恐龙的残忍镜头。但是藉由3D将栩栩如生的恐龙搬上银幕,其实已经让许多人在看预告片的时候张目结舌,还有人甚至表示,迪斯尼已经把电影拍成这样的地步,让电影已经不知道要进化到什么样更惊人的地步。工作人员共花费了320万个工作时,该片的全部素材达1亿个文件,约45兆兆字节之巨,足可装满7万张光盘。该片工作室内共有250名专职程序员和300名设计人员,他们平均每周工作3万个小时,最高时曾达到6万小时。软件组成员共编写了7万行代码,全部打印出来需要1.17万页纸,相当于一部25卷、每卷468页的百科全书。此外,共有48名动画设计师参与了《恐龙》的制作。其中三分之一具有传统手绘动画经验,三分之一曾经从事静格拍摄,而另外三分之一则有电脑动画背景。

为了达到惟妙惟肖的效果,DISNEY甚至还花钱请一些生物学家、运动学家和高超的电脑技术人员。与此类似的一个镜头在恐龙群的逃跑途中,也是个特写镜头,一只巨大的恐龙脚踏在干燥的黄沙上,在轰然的巨响和腾起的沙尘里,那只脚占满了整个画面,以不容辩驳的真实感挑战你的判断能力。我觉得这不是一只恐龙脚,简直是DISNEY的自信与得意。

因为采取了拟人的处理,这些恐龙的表情就变得十分复杂,它们面部肌肉的变化、嘴角的扯动以及眼睛的灵活和舌头的仿真都受到严峻的考验。但影片几乎都用特写展示出来,得到的不是怀疑而是赞叹。那些表情也绝不是凭空而为,其喜怒哀乐的样式都可以在人脸上找到根据和来源。

也就是经过计算机这样的特效处理,呈现在大屏幕上的气势才令人叹为观止,仿佛观看真实远古大地的纪录片一样。尤其是整部电影中很多特写镜头的运用栩栩如生,恐龙蛋的漂泊,恐龙抬起的大脚,恐龙犀利的眼神,流星落地激起的尘土,落水溅起的浪花„„每一个特写镜头所描绘的画面都非常精确和科学,这不是一个画家能够单独办到的,没有整个创作团队和计算机的计算,是无法达到迷惑我们的眼睛的效果的。

我想《恐龙》这部影片的产生不仅仅是带给我们视觉上的冲击,它应该是一项影视技术变革的序幕,是推动影视业发展的动力,可以毫不夸张的说在当时,这是全新的制作手段,改变了传统的电影制作工艺:而且对电影的本质及创作观念都产生了强烈的冲击。现而今,CGI技术在数字化方面的应用已经越来越广泛,数字技术使虚幻的世界和我们认为真实的世界结合在一起,达到了新意义上的超真实境界,这也许就是未来的发展潮流吧。

现在三维技术已经渗透到其他行业,现在很多商业中心已经出现了各种多维世界体验中心,将人放在亦真亦幻的场景中去真正感受IT技术带给人的美好享受。

当然,CGI技术在向前发展的路上必须要面对的一个问题便是经费和开支问题,从上面的数据可以很明显的看到,制作一部质量非常高CGI电影,需要消耗巨大的人力、物力、财力。《恐龙》这部影片花费了大概3.5亿美元,虽然上映后,票房全线飘红,但是我们更加希望看到的是低成本高回报的电影。巨大的消耗往往意味着浪费和不必要的开支,所以在CGI技术推动影视业不断向前发展的过程中,我们不得不考虑这一点。

前段时间当史诗级的特效电影《阿凡达》上映后,便掀起了一股3D风潮,国内争先上映各种3D电影,而且票价和普通非3D电影贵了将近一倍。然而当我们看到那些电影之后便觉得索然无味,也许经典并不可复制,而拙劣的模仿只能是邯郸学步。希望在CGI技术或者其他影视制作技术向前发展的路上,我们要脚踏实地,不断创新改进,这样才能真正推动影视业甚至其他行业向良好的趋势发展。

篇3:基于CGI的用户查询系统的实现

公用网关接口程序是存放在HTTPD Server上的, 为网络上的用户和HTTPD Server之间提供一个交互式的接口。比如在我们的拨号网络管理系统中接收到用户的查询请求, 然后将相应的请求提交给对应的CGI程序, 由此CGI计算出结果并将其返回给用户。CGI的主要特点是:

1.1 公共 (common) :

无需考虑客户机和服务器机所运行的操作系统, 只要二者的网关程序遵循同一个数据传输协议, 即可进行数据交互。这种特性为不同的计算机系统之间的程序提供了很好的移植性。

1.2 网关 (Gateway) :

CGI可被用来作为HTTPD Server和其它应用程序之间的“连接件”或“中间件” (Middle Ware) 。如:HTTPD Server没有计算和统计等功能, 但利用CGI网关程序可以很方便的完成这些功能。

1.3 接口 (Interface) :

CGI使用标准通讯机制, 为HTTPD Server和应用程序之间传递参数, 充当HTTPD Server和应用程序之间的接口。

2 使用CGI时的用户和HTTPD Server之间的数据交互

在使用CGI时, 用户的数据通过HTTPD Server传送到相应的CGI程序中。用户对拨号管理系统的查询示意图如图1所示。

在这个用户查询系统中的数据传递的流程描述如下:

2.1 用户通过WEB浏览器 (Netscape, IE等) 向拨号管理服务器上的HTTPD发送请求, 即输出标准的统一资源定位符URL, 该请求中包含了要求服务的类型 (HTTP, FTP, TELNET) , 以及服务的存放位置和要传送给CGI程序的参数, 在我们的管理系统中使用的服务类型是HTTP。下面是一个典型的请求:

2.2 HTTPD Server解析用户发来的查询请求, 并根据请求的类型决定处理的方式:

(1) 如果请求是一个HTTP请求, HTTPD Server首先对所请求的文件进行定位, 然后根据文件类型进行相应的处理方式。如何处理不同类型的文件, 由HTTPD Server维护人员在进行系统配置时决定。如果HTTP Server不能处理用户请求的文件类型, 就将它作为无格式文本文件 (Plain text) 对待, 返回给用户浏览器。

(2) 如果用户请求的文件类型是HTML文件, HTTPD Server将不做任何处理而直接把文件返回给用户浏览器, 由用户端的浏览器解释并显示此文件。但当HTML文件中包含有“服务器端库文件引用 (server-side includes) ”说明时, HTTP Server将把需要的库文件处理后再返回给用户。

(3) 当HTTPD Server识别到用户的请求是一个可执行程序或是一个CGI程序时, 它将根据用户输入的参数调用此程序并运行之。HTTPD Server将客户端传来的数据头 (header data) 加到自己的数据头上, 作为环境变量传递到运行程序中。

CGI程序会解析用户输入的信息, 把这些数据传递给CGI程序可以通过环境变量方式、命令行参数方式或标准输入流方式来完成。

2.3当CGI程序运行程序不产生结果而仅仅执行某种行为时, HTTPD Server也将向用户返回一个消息说明“无数据返回”。注意此时客户机和服务器之间仍然保持连接状态。

2.4 如果CGI程序运行产生了结果并将这些数据返回给用户, CGI程序必须为这些输出数据附加一个HTTP Server可以理解的数据头, 该数据头必须指明返回数据的MIME格式, 这对于服务器能否正确处理返回数据至关重要。

当服务器读取由CGI程序返回的数据后, 根据其数据头消息决定处理方式。通常, 服务器采用两种处理方式:对数据头是一个“文件路径 (Locate) ”类型, HTTP Server会获取文件或通知客户机取回文件。如果数据头是一个“Content-type”类型, 服务器将把数据返回给客户机, 用浏览器负责返回数据的处理和显示。

3 基于CGI查询系统的设计

我们在管理系统中为了简化系统以减少开发系统的周期与成本, 将所有的数据都存储到管理服务器所在的本地数据库系统中, 而没有将其存储到一个分布式的网络数据库环境中。对于本地数据库来讲, CGI程序完全能够胜任一般的查询、增加、修改、统计等操作。为了完成对用户的查询, 我们就需要接收用户的请求并根据对相关数据进行统计、分析来满足用户的请求。

3.1 用户查询系统的设计目标。

(1) 完成用户对通讯流量的查询。

(2) 完成用户对使用拨号网络时间的查询。

(3) 完成用户对个人账号状态的查询 (账号有效、禁用等状态) 。

(4) 完成用户对个人密码信息的修改。

(5) 完成系统管理员或者组管理员对一般用户账号的管理工作 (如:增加新账号、禁用账号、删除账号、修改用户信息等) 。

3.2 系统的运行机制

基于网络的用户查询系统主要是通过网络向用户提供方便地查询, 这就需要用户拥有一个浏览器来与我们设在记帐管理中心的HTTPD Server进行数据交互或向HTTPD Server提出请求。在记帐管理中心至少需要一个HTTPD Server来接收用户的请求, 处理用户的请求并将结果返回给用户。其工作原理如图2所示。

3.3 查询系统界面设计

在我们的查询系统中, 需要向用户或者管理员提供一些友好的交互式界面, 以方便管理和查询。在这里我们分别就面向管理员的界面和面向用户的界面进行介绍。查询系统提供了一个开始界面, 使用者可以选择操作类别, 系统根据查询类别做进一步的处理。开始界面如图3所示。

开始界面中提供了四个选择按钮, 分别对应计费状况查询、用户状态查询、用户密码修改和系统管理维护这几种功能。

使用者选择用户状态查询后, 系统给出用户状态查询界面。使用者在界面上输入用户名, 并选择确认, 系统将从用户信息数据库中进行查询, 如果用户名有效, 系统将根据用户当前的权限给出账号是否已被禁用。使用者选择用户密码修改后, 系统给出密码修改界面, 用户密码修改界面提供了交互形式, 在首行输入用户的名称, 下面一行需要用户给出改动之前的密码, 后面的两行分别填写用户的新密码和新密码的确认信息 (重复输入的新密码) 。用户选择“确定”按钮后, 系统将从用户信息数据库中核对用户名称。

4 结论

该查询系统是基于公共网关接口 (CGI) 而设计的, 它能够满足用户对个人信息的查询及修改, 并且可以使管理员以WWW的方式对用户信息数据库进行方便的管理。

摘要:本文详细讨论了拨号管理系统中基于CGI的用户查询系统的实现。拨号用户可以通过WWW的方式访问我们的用户信息数据库, 用来查询该用户对拨号系统的使用情况, 以及进行一些必要的信息更新, 例如用户密码的修改等。

关键词:CGI,HTTPD Server,拨号网络

参考文献

篇4:cgi技术

我更关心的是这款新车究竟又有哪些提升的内容,换句话说,就是好上加好到底有多难?奔驰C级毫无疑问是奔驰旗下最成功的车型之一,自1982年问世以来三十年间的四代车型累计销售达850万辆,如果需要给它一个评价的话,我说它已经足够好了。

三年多以前奔驰C级引入北京奔驰投产,我们对于这代W204型号的C级车评价甚高,它在中型车尺寸级别中,树立了豪华品牌舒适、安全、品质的标准,成为中产家庭的优选坐驾。现在推出中期改款,显然是为了巩固这样的大好局面。

外形和内饰的变化显而易见,风格更加年轻

在整体轮廓和尺寸比例都没有改变的情况下,我们差不多一眼就能看出新C级的变化来:头灯是最明显的改动,更为动感的曲线轮廓比从前的规规矩矩显得更加年轻,灯组内部的形状设计以及LED的采用,也突出了科技感;前雾灯被细长条形的日间行车灯取代,除了有助于行车安全之外,也很显档次;相应的前保险杠区域的设计也略作修饰,目的同样是使这款车在气质上更加时尚新潮。除此之外,差不多就只能再找出尾灯加入LED光源这一点外部的变化了。

为什么只是寥寥数笔就给人一种焕然一新的气象呢?看来是设计师准确地找到了前代车型略显呆板的症结所在,只是在“眼睛”上动了点小手术就起到了事半功倍的效果。这也难怪那些整容的女孩们最喜欢拿眼睛开刀了。

其实要我说,真正给人耳目一新感觉的还不是车外的小手术,内饰设计堪称重塑形象的大手术了。首先最根本的变化是中控台,原来的样子太过规矩,基本就是德国小型家用车的标准模板,和现在中型车拔高档次的趋势相去甚远,所以新C级用更加富有雕塑感的线条和区域划分营造出了更符合其品牌形象的豪华氛围——其实这里面也没有太多奥妙,不过是把从前贴近A级车的路数转变成追随E级车的路数罢了,谁让人家奔驰有这样雄厚的家底呢?

其次是别人不太敢使用的黑白配色却被新C级运用得如此精致协调,搭配上“时尚型”专属的黑色岑木饰条,再点缀上非常扎眼的少数金属色镀铬按钮,显得非常有质感。还有就是诸如COMAND控制旋钮之类的细节处理得更为细致,操作手感也更为细腻。

放在最后说的并不是微不足道的补充,而是我最为强烈的情绪化表达:我极端排斥的奔驰式方向盘设计终于做出了改变,虽然还是四辐,虽然握持的手感还不够运动,但它毕竟很漂亮!很难想象今天还能把四辐方向盘设计得这么漂亮,而且方形的多功能按键替代了原来古董般的圆形,从前的陈旧和古板一扫而光,新C级真的年轻了。说实话我觉得新C级的设计有这一个方向盘就算成功了。

要是鸡蛋里挑骨头的话也不是完全没有:中控台屏幕尺寸太小,还不是触摸屏,这是目前的电子控们很容易盯住的缺点。

从99分到100分,可能是一个非常艰难的过程

无论跟谁比,奔驰车都该算是最讲内涵的,所以新C级的改款肯定不是只在外形和内饰设计上下功夫,我们当然还会见到更有说服力的东西。

最直接的进步是变速器从非常不提气的5速自动升级到了7速自动,而且是最新版本的7G-TRONIC PLUS,在发动机保持不变的情况下,凭借变速箱的出色发挥,可以显著提升加速能力,并且降低油耗。这款C200CGI车型装备1.8升排量的涡轮增压缸内直喷发动机,采用了奔驰“蓝色效能”技术,动力输出追求高效、低能耗,最大功率达到135kW/5250rpm,最大扭矩为270Nm/1800-4600rpm,匹配7速自动变速器,0-100km/h加速仅用时7.8秒,而前代C200拥有相同的动力特性,却只输在变速器上,破百加速需要8.3秒。同时,新车型的油耗水平还降低了大约12%,由于高速巡航时发动机转速的降低,车内噪声水平也得到相应改善。

通过驾驶,会很轻易地发现新C级依然“顽固”地保持了奔驰C级车的一贯机械风格。它也讲年轻、运动,但我想它的风格也该是绅士范儿的运动,就好比高尔夫和足球的区别。新方向盘很漂亮,摆弄它的动作也同样是很轻盈漂亮的,奔驰C级传达出来的理念就是:稳健潇洒的驾驶体验,我觉得这种感觉相当舒服。

新C级在主动安全方面没少花心思。其中预防性安全系统(PRE-SAVE)、自适应制动和自适应远光灯都能有效地帮助驾驶员更加安全地驾驶车辆。来自E级车的装备“注意力警示辅助系统”(ATTENTION ASSIST)是这次新C级的重要升级内容,它可以通过一系列监测系统来判断驾驶员是否出现疲劳和注意力分散的情况,并且及时发出警告。我在试车的过程中没敢去以身试法体验一下“注意力分散”后是个什么效果,只是观察到当我比较长的开了一段路程后仪表盘上会出现一个警示灯,提醒我也许该停下了去喝咖啡了。

新C级的装备表上还新增了中文语音控制系统、驻车定位系统、主动头枕等,很罕见地在改款车上还减掉了一项配置:后风挡电动遮阳帘。揣测一下,大概是奔驰终于嫌这个东西太土了,改用深色私密玻璃代替也不错。

之前历经三十年,奔驰C级车已经足够优秀了。我们现在又看到了新C级精益求精的提升,它够得上完美吗?也许距离已经很近了,从99分到100分,有时候是一种可望而不可即,于是奔驰自己在不断提高完美的标准。

像这种从优秀向着完美努力前行的过程真的很有意思,我们倒是很乐意见证这个过程。

1.黑白配色被新C级运用得如此精致协调,搭配上“时尚型”专属的黑色岑木饰条,再点缀上非常扎眼的少数金属色镀铬按钮,显得非常有质感

2.仪表盘中间的信息显示区域升级为彩色

3.四辐方向盘设计得很漂亮,而且方形的多功能按键替代了原来古董般的圆形,从前的陈旧和古板一扫而光

4.中控台屏幕尺寸太小,还不是触摸屏

5.给后排乘客提供的装备除了空调出风口之外,还有12伏电源接口

6.5速自动升级到了7速自动,而且是最新版本的7G-TRONIC PLUS

篇5:cgi技术

摘要:在详细介绍一种嵌入式Web服务器BOA的实现与配置方法的基础上,以一个Web在线远程监控GPIO(通用输入/输出)的程序为实例,介绍嵌入式Linux系统下CPU程序设计技术。

关键词:嵌入式系统Linux BOA CGI GPIO

1 概述

随着互联网应用的普及,越来越多的信息化产品需要接入互联网通过Web页面进行远程访问。嵌入式Web系统提供了一种经济、实用的互联网嵌入式接入方案。这里结合一种嵌入式Web Server BOA来介绍嵌入式Linux系统下的CGI程序设计技术。

2 Web Server BOA的实现与配置

2.1 uClinux下,主要有三个Web Server:HTTPD、THTTPD和BOA。HTTPD是最简单的一个Web Server,它的功能最弱,不支持认证,不支持CGI。THTTPD和BOA都支持认证、CGI等,功能都比较全。BOA是一个单任务的小型HTTP服务器,源代码开放、性能优秀,特别适合应用在嵌入式系统中。目前的uClinux的代码中已经包含BOA的源代码。在uClinux下实现BOA,只需要对BOA做一些配置和修改。以下是配置的过程。

(1)编译BOA到内核

首先,需要把BOA编译到内核,即执行make menuconfig,在应用程序选单中network application项下面选择boa。该操作需要重新编译内核。

(2)编制配置文件boa.conf

在Linux操作系统下,应用程序的配置都是以配置文件的形式提供的,一般都是放在目标板/etc/目录下或者/etc/config目录下。但boa的配置文件boa.cont一般都旋转在目标板/home/httpd/目录下。

例如,一个典型的boa.conf文件格式如下:

ServerName Samsung-ARM

DocumentRoot/home/httpd

ScriptAlias/cgi-bin/home/httpd/cgi-bin/

ScriptAlias//home/httpd/

它指定了HTML页面必须放到/home/httpd目录下,cgi外部扩展程序必须放到/home/httpd/cgi-bin目录下。

(3)编译烧写内核

重新编译内核后,通过烧写工具烧写内核,就可以在PC上通过IE浏览器访问开发板上的.Web Server。例如,输入开发板的IP地址192.168.0.101,即可访问到自己做的网页index.html了。并且,通过编写CGI外部扩展程序,可以实现动态Web技术,下面将详细介绍。

2.2 具有MMU平台的Linux下B0A的实现与配置

对于有MMU(内存管理单元)的平台,如armlinux和ppclinux,可以到网上下载一个主流版本的boa发行包。因为是运行在目标系统,所以要用交叉编译工具编译,即需要修改boa/src/Makefile里面的编译器。例如:

CC=/LinuxPPC/CDK/bin/powerpc-linux-gcc

CPP=/LinuxPPC/CDK/bin/powerpc-linux-g++

篇6:cgi技术

用VB编写标准CGI程序(上)

利用通用网关接口(CGI),Web服务器可以执行一些外部程序,并将这些外部程序所产生的输出结果和Web服务器所管理的静态文本、图像和声音融合在一起传给相应的Web浏览器。当客户机的浏览器向Web服务器请求一个HTML文件时,服务器在收到请求后就去寻找这个文件并将找到的文件传送给客户机。而当客户机的请求是一个CGI程序时,Web服务器将激活客户机所请求的CGI程序并把程序的执行结果传给客户机。

标准的CGI程序是通过环境变量和标准输入输出来与Web服务器交换信息的。任何一个被系统激活的进程都拥有标准输入和输出这两个文件句柄,CGI程序的进程也不例外。不过,当CGI程序被Web服务器激活以后,它的标准输入STDIN被连接到Web服务器的标准输出STDOUT上,而CGI程序的标准输出STDOUT则被连到服务器的标准输入STDIN上。因此,CGI程序从标准输入读取信息(也就是从Web服务器的标准输出读信息),而它向标准输出写信息(也就是向Web服务器的标准输入写信息)。

Web服务器一般将客户机传送来的信息放在它的标准输出和相关环境变量中,而CGI程序则从环境变量和它的标准输入(也就是Web服务器的标准输出)获取所需的信息,程序的最终输出结果则被写向它的标准输出STDOUT(也就是Web服务器的标准输入)。Web服务器将从它的标准输入STDIN(也就是CGI程序的标准输出)获取CGI程序的输出结果并将它传送给客户机。客户机、Web服务器和CGI程序之间的信息交流如下图所示。显然,Web服务器就像是客户机和CGI程序间的中介。

Web服务器、CGI程序间的这种标准框架在Unix系统下和微软Windows环境中的字符方式下可以工作得非常好,因为此时系统产生的所有进程都可以存取标准输入和标准输出。但对于微软Windows图形方式下的程序就不行了,因为它们无法存取标准输入和标准输出。为了解决这一问题,微软在Win32系统中创建了另一类型的标准输入和标准输出,程序可以通过调用Win32 API函数来存取标准输入和标准输出,不过,这就意味着使用这类标准输入和标准输出的CGI程序都必须是32位的。

微软Windows环境下的其它一些Web服务器(例如Website)则使用另外一种特殊的技术(即利用INI文件)来实现Web服务器和CGI程序间的数据交流。采用这种被称为“Win-CGI”规范编写的CGI程序通常只能在部分Web服务器上运行。一般地,支持Win-CGI的Web服务器将客户端的输入以及有关的状态信息写入到一个INI文件中,而CGI程序则从该INI文件中获取相关信息,这类程序的执行效率没有标准CGI程序高。

在进行CGI编程时,只要使CGI程序从标准输入和环境变量中获取客户机提供的信息,并将要传送给客户机的输出结果写入标准输出,剩下的信息传递工作将由Web服务器自动完成。CGI只是规定了一个标准的接口规范,只要遵守这个标准规范,程序开发人员就可以利用各种编程工具(如Perl、C、FORTRAN、Visual Basic等)进行CGI编程了。考虑到Visual Basic的强大的数据库处理能力、客户机/服务器模式的编程能力以及字符串处理能力,所以本文主要向大家介绍如何使用VB编写标准的CGI程序。

一、输入输出的处理

一个CGI程序被激活以后,它首先要做的事情就是确定系统平台、Web服务器和客户端浏览器的状态信息以及客户端用户的输入数据。此外,它还必须能够将相关信息传送给客户端,否则它将一事无成。这些操作都是通过存取环境变量和标准输入输出来完成的。用VB编写的CGI程序通过调用函数Environ( )来获取相关环境变量的值。存取标准输入输出就要在程序中使用Win32API函数GetStdHandle( )、ReadFile( )和WriteFile( ),在使用这些函数时首先必须在程序中声明它们,写声明语句时可以借助于VB提供的API文本查看器。

以下的CGI程序说明了在VB-CGI程序中如何处理环境变量和标准输入输出。该CGI程序非常简单,可将标准输入中的信息不经任何处理就返回给客户端,它可被任何表单用POST方法激活:

Declare Function GetStdHandle Lib “kernel32” (ByVal nStdHandle As Long) As Long

Declare Function ReadFile Lib “kernel32” (ByVal hFile As Long, lpBuffer As Any,

ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long,lpOverlapped As Any) As Long

Declare Function WriteFile Lib “kernel32” (ByVal hFile As Long, ByVal lpBuffer As String,ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long,lpOverlapped As Any) As Long

Public Const STD_INPUT_HANDLE = -10&

Public Const STD_OUTPUT_HANDLE = -11&

Public Const FILE_BEGIN = 0&

Public hStdIn As Long 注释: 标准输入文件句柄

Public hStdOut As Long 注释: 标准输出文件句柄

Sub Main

Dim CGI_ContentLength As String,CGI_QueryString As String

Dim lContentLength As Long 注释: 标准输入中的字符串的长度

Dim sBuff As String 注释: 用于存储标准输入中的字符串

Dim lBytesRead As Long 注释: 实际读入的字符个数

Dim rc As Long

Dim sFormData As String

注释:调用系统函数生成标准输入输出文件句柄

hStdIn = GetStdHandle(STD_INPUT_HANDLE)

hStdOut = GetStdHandle(STD_OUTPUT_HANDLE)

注释:获取环境变量CONTENT_LENGTH的值,并将它转换为整型

CGI_ContentLength = Environ(“CONTENT_LENGTH”)

lContentLength = Val(CGI_ContentLength)

sBuff = String(lContentLength, Chr$(0))

注释:从标准输入中读数据

rc = ReadFile(hStdIn, ByVal sBuff, lContentLength, lBytesRead, ByVal 0&)

sFormData = Left$(sBuff, lBytesRead)

OutPut “Content-type: text/html” &vbCrLf

OutPut “”

OutPut “表单传送数据的方法POST ”

OutPut “

表单传送数据的方法POST

OutPut “

本CGI 程序使用Visual Basic编制! ”

OutPut “

POST方法传送的数据: ”

OutPut “

” & sBuff

OutPut “”

End Sub

Sub OutPut(s As String) 注释: 定义一个向标准输出写信息的函数

Dim lBytesWritten As Long

s = s & vbCrLf

WriteFile hStdOut, s, Len(s), lBytesWritten, ByVal 0&

End Sub

一般地,用VB编译生成的CGI程序不能正确处理中文信息,

这主要表现在CGI程序向STDOUT输出的中文在Web页面上无法正确显示,可通过在该中文字符串后跟着输出一些空格来解决这个问题。当使用HTML标识符

对Web页面进行排版时,浏览器在显示该Web页面时会吃掉多余的空格而只保留一个。在这种情况下,这些空格对Web页面的外观基本上没有什么影响。如果使用HTML标识符

对Web页面进行排版,则由于空格不能被浏览器吃掉,所以Web页面的外观将会受到较大的影响。不过,这时可用HTML的表格、

来代替

对Web页面进行排版。

注意:整个CGI程序的主体必须放在MAIN()函数中。

二、URL译码与解码

由于Web服务器和浏览器不能正确处理一些特殊的字符,Web服务器和浏览器之间可能会因此而产生某种程度的误会,所以在数据被传送之前,浏览器都要对表单内客户输入的数据中的特殊字符进行URL译码。

例如,Web系统用“=”分解表单各元素的NAME和VALUE属性,用“&”分解不同表单元素的输入数据。如果在表单的输入数据中包含这些特殊的字符,并且表单的数据在传送给Web服务器前不作任何处理,则Web服务器将无法知道哪一个“=”、“&”是用户输入的,哪一个是浏览器加上的。在由表单属性ACTION定义的URL中,也可能会出现一些特殊的字符,当在CGI程序的名称和路径信息(Path Information)中出现“=”、“&”和“?”时,都会影响数据的正确传送。

URL译码(URL Encoding)就是将Web服务器所不能正确处理的特殊字符转换成它的十六进制数的形式,比如将“%”转换成“%25”、“=”转换成“%3D”等等。这些特殊的字符通常被称作Web系统的保留字符。在Web系统上无论是用GET方法还是用POST方法传送的数据都要进行URL译码。CGI程序要想处理表单传送来的数据,还必须对浏览器URL译码过的数据进行解码。因此,理解URL译码对于我们进行CGI编程是非常重要的。URL译码一般包括以下步骤:

1、浏览器将所传送的数据根据表单所包含的元素分解成“NAME=VALUE”形式,NAME和VALUE分别是表单元素的属性。其中,VALUE属性中存储客户机在表单中输入的数据:如果客户机没有输入数据,则VALUE存储的是表单定义的缺省值;如果缺省值也没有定义,则VALUE值为空。

2、代表表单中各元素的各个“NAME=VALUE”对被浏览器用“&”连接起来。

3、VALUE属性中存放的数据若含有空格,则被转换成“+”。

4、URL和输入数据中所包含的Web系统的保留字符必须被译码成其十六进制数形式。

5、被译码后的字符被表示成一个“%”和它们的十六进制数形式(即%HH)。

CGI程序从环境变量“QUERY_STRING”或标准输入中读入的数据是经过浏览器URL译码过的,故在使用这些数据以前还必须对它们进行URL解码。解码的目的是将数据还原成客户端用户在Web页面上输入时的形式。本文已经介绍了URL译码过程,URL解码过程与它正好相反,它一般包括以下步骤:

1、从浏览器用GET或POST方法所传送来的数据中找出代表各个表单元素所储存数据的“NAME=VALUE”对。

2、VALUE属性中所存放的数据若含有“+”,则被转换成空格。

3、将VALUE属性中所存放的数据的十六进制数“%HH”转换成相应的字符。

Web系统将汉字当成特殊的字符,对它也要进行URL译码。对于一个特殊的单字节字符(比如“/”),浏览器通常将它译码成十六进制数的形式(比如%2F),“%”表示它后面跟的是两位十六进制数。当VB程序对其进行处理时调用Chr$函数就可以将其恢复为原貌。而一个汉字则被浏览器译码成四位十六进制数(比如%D5%C5)。如果CGI程序还像以前那样分别调用Chr(D5)和Chr(C5),则由于D5、C5都不是正常的单字节十六进制数码,故Chr函数返回空,汉字将无法正确还原。正确的做法应该是将有关汉字的四位十六进制数一起传给函数Chr(如Chr(D5C5)),此时汉字才能被正确还原。

因此,可以让CGI程序对四位连续的十六进制数一起进行译码,以便使汉字能够被正确还原。但在这种情况下,当客户端用户输入了两个连续的Web系统保留字符时,CGI程序又可能把它们当成汉字来处理。这时可以让CGI程序在需要对四位连续的十六进制数进行译码时首先检查前面两位是否为Web系统的保留字符,如果是则仍然按照单字节的字符处理。不过如果客户端用户在表单内填写了很多汉字,则CGI程序的负担将会大大加重。事实上,在大多数情况下,客户端用户很少会使用两个连续的Web系统的保留字符,所以可以只让CGI程序对最容易出现的情形如“://”(当客户端用户在表单中输入某一URL时会出现这种情况)进行检查,本文下节提供的函数UrlDecode( )可以实现对汉字和Web系统保留字符的URL解码。

上一篇:优秀端午节作文600字下一篇:销售员如何塑造自己的形象?