收藏 分销(赏)

基于AE软件的民族风设计任务书.doc

上传人:二*** 文档编号:4510512 上传时间:2024-09-26 格式:DOC 页数:75 大小:2.70MB 下载积分:5 金币
下载 相关 举报
基于AE软件的民族风设计任务书.doc_第1页
第1页 / 共75页
本文档共75页,全文阅读请下载到手机保存,查看更方便
资源描述
基于AE软件的民族风设计任务书(完整资料) (可以直接使用,可编辑 优秀版资料,欢迎下载) 某某学院毕业设计(论文)任务书 毕业设计(论文)题目:基于After Effects 的民族风设计 教学院:计算机学院专业班级:计算机应用技术学生姓名: 学号:指导教师: 1.毕业设计(论文)的主要内容 After Effects是Adobe公司开发的一个视频合成及特效制作软件.After Effects 用于高端视频特效系统的专业特效合成软件,隶属美国Adobe公司.它借鉴了许多优秀软件的的成功之处,将视频特效合成上升到了新的高度.Photoshop中层的引入 ,使AE可以对多层的合成图像进行控制,制作出天衣无缝的合成效果。 本次毕业设计是基于After Effects 的民族风设计,该设计主要利用After Effects软件的合成技术,把设计所需要的素材混合成单一复合画面。     该宣传片主要是对傣族的各种民族特色,有针对、有秩序地进行策划、拍摄、录音、剪辑、配音、配乐、动画、特效、合成输出制作成片,目的是为了声色并茂地凸现民族独特的风格面貌,让观众对傣族产生正面、良好的印象,从而有了对该民族更深层次的了解。 2.毕业设计(论文)的要求 该毕业设计需要具备以下几点: 1。创意思维 宣传片需要有新奇的创意.这样不仅可以达到吸引受众的目光,还能更好的起到宣传的作用。 2。素材搜集 宣传片的设计需要具备多方面的资料,例如样片、图片、音乐以及文案等等。越是善于搜集素材的人,他在设计上就有可能取得更大的突破。 3.素材管理 搜集的素材来自不同的地方,缺乏完善的分类和管理.我们需要对素材进行一定的加工和处理,以便更好地利用素材。 4.创意表现 通过课题的设计,可以结合多媒体开发、网络应用及网络编程等方面技术得到综合应用,打破传统平面杂志的局限,增加信息的可读性. 5.色彩的感知 根据宣传片内容的定位,确定杂志的主色调.它的基本要求应该是颜色协调、鲜明、抢眼,但不刺眼,能与整个内容的基调相吻合,能保持和内容的风格相一致或给予有效的补充。 3。进度安排 毕业设计(论文)各阶段名称 起 止  日 期 1 相关资料收集,阅读,找到合适的设计方向 2 设计任务书 3 对设计题目进行总体设计 4 利用视频编辑软件进行详细设计 5 撰写毕业论文 6 毕业论文修改、打印、准备答辩资料 4。毕业设计(论文)应完成的工作 1. 完成毕业论文,并且无抄袭,无造假现象,论文条理清晰,层次分明,内容丰富完整,标注和参考文献准确,能代表本科生的毕业水平 2. 完成宣传片的设计 3. 完成本课题规定的设计要求,在答辩时能给评委演示其主要内容 5.主要参考文献 [1]伍福军编著;《After Effects CS4 影视后期合成案例教程》,北京大学出版社,2011年1月 [2]美国Adobe公司;《Adobe After Effects CS4经典教程》,人民邮电出版社,2009年7月 [3]美国Adobe公司;《Adobe Photoshop CS5中文版经典教程》,人民邮电出版社,2010年11月 [4]曹金元,徐志,周庆儒编著;《After Effects CS4影视特效风暴》,北京科海电子出版社,2009年08月 [5]靳晶编著;《影视动画分镜设计》,中国电影出版社,2009年01月 基于TCP协议的网络通信系统的设计与实现 摘  要 :网络通信,由于其具有实时性、跨平台性、成本低、效率高等优点而受到广泛的使用。设计并实现一个能够处理多用户进行实时、安全的即时通信系统具有较强的现实意义。即时通信的底层通信是通过SOCKET套接字接口实现的.当前的主流UNIX系统和微软的WINDOWS系统都在内核提供了对SOCKET字接口的支持。使用这个统一的接口,可以编写一个可移植的TCP/IP通信程序。使信息能够在INTERNET上可靠的传输.  本文设计并实现了基于局域网内的简单即时通信系统,系统采用C/S模式,底层通信通过SOCKET套接字接口实现,服务器负责客户端的登录验证,好友信息的保存和心跳报文的发送。客户端采用P2P方式实现消息传递,并能实现文件的传输.本文首先讨论了同步套接字,异步套接字,多线程并发执行任务等;然后阐述了客户端、服务器如何使用XML序列化的消息进行通信。 关键词:即时通信;文件传输;套接字;TCP协议 Abstract :Instant messages have several advantages such as real—time, cross—platform, cheap and efficient. To design a Multi-user IM (instant message) architecture is very important in both theory and realism。 Instant message based on TCP/IP protocol that is realized by socket interface. Almost all UNIX operation systems and Microsoft's windows operation systems provide support of socket in the kernel. Using the uniform interface, we can develop a portable program of TCP/IP, which help us transfer information in Internet safely and credibly.  The system uses the client/server(C/S) mode。 The server takes the responsibility of the login message of client, the saving of friend message and Message heartbeat. The transmission of the basic messages of the customer end will be designed on P2P architecture. This thesis explains how the client and server communicate via serializing XML message。 Key words:  Instant Message; File Transfer; Socket; TCP protocol  引言  1.1  课题背景  即时通信是一个终端连往一个即时通信网路的服务。即时通信不同于e-mail在于它的交谈是实时的.大部分的即时通信服务提供了presence awareness的特性──显示联络人名单,联络人是否在在线与能否与联络人交谈。    最早的即时通信软件是ICQ,ICQ是英文中I seek you的谐音,意思是我找你。四名以色列青年于1996年7月成立Mirabilis公司,并在11月份发布了最初的ICQ版本,在六个月内有85万用户注册使用.  在因特网上受欢迎的即时通信服务包含了MSN Messenger、AOL Instant Messenger、Yahoo! Messenger、NET Messenger Service、Jabber、ICQ与QQ。 这些服务有赖于许多想法更久的(与普遍)的在线聊天媒介,如Internet Relay Chat一样知名.  1970年代早期,一种更早的即时通信形式是柏拉图系统(PLATO system)。之后在1980年代,UNIX/Linux的交谈实时信息被广泛的使用于工程师与学术界,1990年代即时通信更跨越了因特网交流.1996年11月,ICQ是首个广泛被非UNIX/Linux使用者用于因特网的即时通信软件。在ICQ的介绍之后,同时在许多地方有一定数量的即时通信方式发展,且各式的即时通信程序有独立的协议,无法彼此互通。这引导使用者同时执行两个以上的即时通信软件,或者他们可以使用支持多协议的终端软件,如Gaim、Trillian或Jabber.  1.2  国内外研究现状  1.2.1 国外研究现状 当今,国际上对网络通信系统研究的较好的公司有,思科,Sun,Ms等公司,思科主要研究的是底层的传输;MS,Sun公司研究的是应用层。其中ms公司凭借其在操作系统的垄断地位,为了在网络的发展中取得先机,采用了各种各样的手段.但是,其捆绑的msn,无论从功能上,还是技术上来说,都不算是非常先进的。当然,ie,同样也不是很受人青睐,这让人想起了,当年的网景公司,网景只是生不逢时.MS不择手段的想打跨网景,可见其对网络的重视。如今,Sun公司在网络应用上捷足先登,凭借着Java,Sun在网络的应用上领先于MS。微软,想用同样的办法搞跨对手,因此它拿出了Visual c#,来对抗Java。这些都是在应用层面的开发工具。应用层上的产品就更显种类繁多。ICQ几乎是国际上通用的即时通信工具,由于在我国它的应用不是很广,所以,其原理也很少被介绍。msn,是MS的产品,同样在国内没什么市场,所以,对其原理,也很少被讨论过。至于ie,是在Visual c++下开发的产品,虽然有严重的安全隐患,不过,至少能在某种程度上代表当今国际研究的水平。此外,国际上最近出先了新的浏览器Firefox,其性能据说是远高于ie,也许在网络的天下,Ms又有了更强劲的对手. 1。2.2  国内研究现状  国内在应用层上的网络应用软件目前发展异常的火爆,因为我国有着网络应用的最大的市场,现在国内网络的基础性建设发展迅速,应用软件也层出不穷,其中,在游戏的领域中,网络通信的工作做的不错,如联众游戏平台,还有其他的一些平台,这些平台基本上都是基于VC++的,用的都是Socket通信,但是为了效率,这些平台没有用MFC提供的CSocket类,而是直接用Socket进行通信。所以效率上不错。此外,tencent的即时通信,也是做的很好的,从某中程度上来说,代表了国内最高的水平。  1.3  本课题的研究方法   本系统采用C/S(Client/Server)结构进行设计,使用SQL Server 2000构建数据库,并在.NET环境下使用Visual C#.net语言和SOCKET套接字开发一个基于TCP协议的简单即时通信软件,实现简单的即时聊天,文件传输等功能。 2 相关技术介绍  2。1 。NET开发平台及C#.NET开发语言  NET框架是Microsoft公司推出的一种全新的开发平台,提供了统一的、面向对象并且可以扩展的编程类库和完善的集成开发环境,大大简化了应用程序的开发过程,并且具有良好的移植性和安全性.  微软为了推行.NET战略,特别为.NET平台设计了一种语言——C#。C#是由C和C++派生而来的一种“简单、流行、面向对象、类型安全”的程序设计语言,其综合了Visual basic的高效率和C++的强大功能,然而更多的人感觉C#更类似JAVA。 2.2  TCP协议  2.2.1 TCP/IP网络协议  协议是对等的网络实体之间通信的规则,可以简单地理解为网络上各计算机彼此交流的一种“语言”。网络通信协议设计的基本原则是层次化,层和协议的集合被称为网络体系结构。相邻层之间的接口定义了下层向上层提供的基本操作和服务,下层向上层提供的服务分两种形式:面向连接的服务和无连接的服务.  计算机网络中已经形成的网络体系结构主要有两个:OSI参考模型和TCP/IP参考模型。TCP/IP参考模型是因特网(Internet)的基础.和OSI的7层协议相比,TCP/IP协议只有4个层次。通常说的TCP/IP是一组协议的总称,TCP/IP实际上是一个协议族,包括100多个相互关联的协议,其中IP(Internet Protocol, 网际协议)是网络层最主要的协议;TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议是传输层中最主要的协议),一般认为IP、TCP、UDP是最根本的三种协议,是其他协议的基础. 2.2.2 TCP——传输控制协议 :面向连接的通信可以使用可靠通信,在这时候,第四层协议发送数据接收方的确认,如果未收到数据或者数据被损坏,则请求重新传输。TCP协议就使用这种可靠通信。 使用TCP协议的应用层协议包括HTTP、FTP、SMTP和Telnet等。   现在可以发送和接收消息了。接收消息后,总是返回ACK消息。如果在收到ACK之前发送方已经超时,则消息将被放到重发队列中以再次发送.   由于它的握手机制,所以TCP协议比较复杂并且费时,但此协议在处理数据时对数据包的传送有保障,从而使得在应用程序协议中不需要再包括该功能. 2.3 套接字  套接字这个术语并没有定义某个协议:它具有两层含义,但两者都与一个协议相关.第一个含义是套接字编程API,它最初由伯克利大学为BSD UNIX而创建。BSD套接字在经过修改后被用作Windows环境的编程接口(并且被命名为WinSock)。WinSock API被包装在System。Net.sockets命名空间的.NET类中.Windows Sockets 是一个独立于协议的编程接口,用于编写网络应用程序。  2.4 流   流的基本概念  流的概念已经存在很长时间了。流是一个用于传输数据的对象。数据的传输有两个方向:   1)如果数据从外部源传输到程序中,这就是读取流. 2) 如果数据从程序传输到外部源,这就是写入流。  外部源常常是一个文件,但也不完全都是文件,它还可以是: 1) 网络,使用一定的网络协议与网络上其它计算机或终端交换数据。  2) 一个指定的管道。 3) 一块内存区域。 2。5 同步、异步、阻塞和非阻塞      同步(synchronous):所谓同步方式,就是发送方发送数据包以后,不等接受方响应,就接着发送下一个数据包。    异步(asynchronous):异步方式就是当发送方发送一个数据包以后,一直等到接受方响应后,才接着发送下一个数据包。    阻塞(Block):指执行此套接字的网络调用时,直到调用成功才返回,否则此套节字就一直阻塞在网络调用上,比如调用StreamReader 类的Readlin ( )方法读取网络缓冲区中的数据,如果调用的时候没有数据到达,那么此Readlin ( )方法将一直挂在调用上,直到读到一些数据,此函数调用才返回。 非阻塞(Unblock):指在执行此套接字的网络调用时,不管是否执行成功,都立即返回。同样调用StreamReader 类的Readlin ( )方法读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。     在Windows网络通信软件开发中,最为常用的方法就是异步非阻塞套接字。平常所说的C/S(客户端/服务器)结构的软件采用的方式就是异步非阻塞模式的。  其实在用C#进行网络编程中,我们并不需要了解什么同步、异步、阻塞和非阻塞的原理和工作机制,因为在。Net FrameWrok SDK中已经已经把这些机制给封装好了。 3.系统总体设计 3.1 需求分析    软件针对局域网内部用户,实现用户间的即时通信。需要分别实现服务器端和客户端的软件设计。    服务器端负责监听用户连接请求,负责连接数据库存储用户信息,负责发送给用户好友信息,负责发送心跳报文检查用户在线状态并即时让用户更新好友在新信息。   客户端发起主动连接,向服务器请求登录或者注册。客户端可以修改昵称,可以加已知用户为好友(类似于MSN的好友添加功能)。客户端之间可以发起P2P模式的聊天,可以传送文件。 3.2 系统基本架构  基于C/S架构的即时通信软件便于对用户信息进行统一管理和保存,面向特定的用户,对信息的安全控制能力很强。为了减轻服务器负担,客户端之间的信息传递是采用P2P模式的,服务器只负责用户的注册,登录和用户在线状态的检验。基本结构如图: 3.3 功能模块设计  CLIENT:  1.注册:  (1)可以完成客户端注册,客户端可以通过填写信息进行注册,信息被发送到 服务器端。  2。登录:  (1)客户可以输入账号和密码进行登录,客户端会发送登录信息等待服务器响 应,登录成功后会发出登录成功信息并刷新好友列表。  3.修改: (1)密码修改:应该有密码修改功能  (2)信息修改:可以更改一些注册信息 4.通信:   (1)即时聊天模块:客户端与客户端之间建立线程进行即时聊天,也包含有简 单的对称加解密算法功能。  (2)好友列表:可以对好友列表进行添加删除等动作。 5。文件传输:  (1)文件传输:文件传输功能 SERVER:  1. 注册回应: 对客户端传送的注册信息进行判断.  (1)HASH加密:对用户的账号和密码信息进行HASH加密  (2)重复用户检查:将加密后信息与已存在账号进行比较,检查是否账号已存 在,如果存在就返回错误信息 (3)注册成功:将可成功注册的用户账号和密码写入数据库内,并向客户端返回成功信息  2.修改回应:  (1)对密码和信息修改请求进行判断,执行和返回修改成功信息。  3.登录回应:  (1)对登录的账号和密码进行加密检查后发回正确或错误情况,并记录上线信息 。 (2)好友列表发送:给成功登录的账号发送好友列表及好友上线信息。  (3)上线信息发送:给成功登录的账号的好友发送在线信息(包括IP,端口等等信息)。 4。在线情况:  (1)对登录,在线,离线的用户情况进行统计,记录和通知  (2)心跳测试:每隔一段时间发送报文测试用户是否因意外原因离线  (3)情况记录:将用户登录时间,IP,下线时间等信息记录入数据库 3.4 逻辑图: 3。5 数据库设计  3.5.1 实体关系图  服务器是作为记录和读取数据库信息的载体,与客户端关系并不复杂,这里需要重点考虑客户端之间的关系。用户与用户之间的关系是较为特殊的递归关系,即描述发生在两个相同实体上的关系。 4 系统实现  4.1 使用XML定义的即时通信协议  4。1.1 信息结构MESSAGE。CS&UMESSAGE.CS  这两个C#类定义了包括服务器信息,状态信息,注册信息,登录信息,聊天信息或者请求文件传输信息的函数,服务器和客户端通过将它们实例化和序列化再转换成流在网络上进行传输。UMESSAGE.CS主要代码如下:      [Serializable]      public class UMessage     {          public UMessage(){ }          private string _nickname;          private string _password;          private string _accounts;          private string _email; private int _info;//表示注册或者登录信息,客户端信息0为注册,1为登录;服务器返回信息0为用户已存在,1为注册成功,2为服务器未知错误,3为CLIENT在线检查,10为登录失败,11为登录成功 private Friend[] _friend;          private int _fn;          private string _fg;         public string Nickname          {              get { return _nickname; }              set { _nickname = value; }          }          public string Password          {              get { return _password; }              set { _password = value; }  }          public string Accounts          {              get { return _accounts; }              set { _accounts = value; }          }          public string Email          {              get { return _email; }              set { _email = value; }          }          public int Info {              get { return _info; } set { _info = value; }          }          public Friend[] Fri          {              get { return _friend; }              set { _friend = value; }          }          public int Fn          {              get { return _fn; }                   set { _fn = value; }          }          public string Fg          {              get { return _fg; }              set { _fg = value; }          }   }  由于MESSAGE.CS与UMESSAGE。CS类似,在此不再详述。  服务器和客户端都可以通过相同的代码对UMESSAGE赋值,再通过XmlSerializer方法进行将UMESSAGE序列化为XML文档,最后将XML文档转化为网络流进行传输。代码如下: #region 将登录信息转为UMessage       private void Traslator()    {  _message。Accounts=this.TextBox1.Text;     _message.Nickname="";     _message。Password=this.TextBox2。Text;     _message.Email=”";     _message。Info=1;      _message.Fri=null;     } #endregion  数据结构FriendStruct  服务器如果保存和传递用户的好友信息是难点之一。数据库的设计和信息的传递辨别都是比较难实现的。  在数据库方面,每个用户拥有各自的好友分组信息(UserFav),分组中间使用“,”分隔,在TCP_FriendInfo表中则分别保存了用户ID和好友ID,使用一个INT字段保存分组信息。数据库以用户ID为标准对好友ID和分组信息进行内连接查询,就可以得到基本的好友信息了。代码如下:  select * from TCP_UserInfo join TCP_FriendInfo on TCP_FriendInfo。UserID='" + uid + ”’ and TCP_UserInfo.UserID=TCP_FriendInfo.FriendID  在好友信息的传输方面,首先定义一个FriendStruct数据结构(当然也可以用枚举完成)如下: using System;  using System.Collections.Generic;   using System.Text;  namespace TCP  {      public class FriendStruct      {          public struct FileInfo         {     public int filere;//接收和拒绝信息,1为接收,2为拒绝,3为取消            public string filename;              public long filelength;  }      }      public struct Friend      {          public string account;          public string nickname;          public string IP;          public string status;          public string fg;//好友分组      } } 在MESSAGE。CS或者UMESSAGE.CS中,我们则定义了FriendStruct的数组。在C#中使用DATAREADER语句可以逐句读取数据库查询的结果,再依次将结果赋值FriendStruct数组元素,就得到了便于发送和读取的存放好友信息的数组。赋值代码如下: while (getf.Read()) //getf即是以上的数据库查询的datareader语句          {             ff[i]。account=getf["UserAccount"].ToString();              ff[i]。IP = getf["UserIP"].ToString();              ff[i]。nickname = getf["UserNickname”]。ToString();               ff[i].status = getf[”UserOnline”]。ToString();              ff[i].fg = getf["FriendGroup"]。ToString();              i++; }          getf.Close();  4.2 数据库连接类  实现一个快捷简单的数据库连接的相关代码是非常有必要的。实现的途径也多种多样,鉴于安全性和复杂性的需求不同,实现方法有简有繁。本设计使用了一个简单的类(UserData。CS)实现了简单快捷的数据库连接和读取。主要代码如下: public static SqlConnection connStr = new  SqlConnection("Server=D96B85DD938A465。;uid=sa;pwd=change;database=TCPDB”);          public static SqlDataReader SqlReader(string sql, SqlConnection connstr)          {    SqlDataReader sqldr = null;              SqlCommand cmd = new SqlCommand(sql, connstr);              if (cmd.Connection.State。ToString() == ”Closed") cmd.Connection.Open();              try              {                  sqldr = cmd.ExecuteReader();              }              catch (Exception e)              {     catch (Exception e)              {               if (e != null) sqldr = null;              }              return sqldr;  }          //数据库操作连接          public static string SqlCmd(string sql, SqlConnection connstr)          {              string errorstr = null;              SqlCommand sqlcmd = new SqlCommand(sql, connstr);                   if (sqlcmd.Connection.State。ToString() == "Open") sqlcmd.Connection.Close();              sqlcmd.Connection。Open();                  try             {                   sqlcmd。ExecuteNonQuery();              }              catch (Exception e)              {                     if (e != null) errorstr = e.ToString(); }     sqlcmd.Connection.Close();              return errorstr;          } 在UserData.CS的基础上,主程序可以更方便地实现数据库连接操作,对数据库进行读写和更新,在此不再详述。   4。3 服务器端  服务器端的界面设计是基于便于测试的目的而实现的。如下图: 4。3。1 同步套接字网络监听  基于同步套接字的网络监听器对服务器来说并不是最好的解决方案,但是仍然可行并且实现简单。主要代码如下:  开启监听端口:          public void Serve()          {              int port = 8888;              ServerIPEP = new IPEndPoint(IPAddress。Any, port);              s = new Socket(ServerIPEP.AddressFamily, SocketType.Stream, ProtocolType.Tcp);              s。Bind((EndPoint)ServerIPEP);                 s.Listen(10);              alSock = new ArrayList(); 以下代码读取连入的连接,依次将连接加入可变长数组alsock,并且读取传入的信息,进行反串行化: while (true)              {                  try                  {                      uc = s。Accept();                      alSock.Add(uc);                      this.tb_states.AppendText(System.Convert.ToString(uc));                      byte[] data = new byte[2048];                      int rect = uc.Receive(data);                      byte[] chat = new byte[rect];                      Buffer。BlockCopy(data, 0, chat, 0, rect);                      UMessage umessage = (UMessage)_translator.Deserialize(new MemoryStream(chat));                      int info = umessage.Info;      对反串行化后的信息进行处理,通过info参数辨认客户端行为(注册或者登录),对注册的信息进行数据库查询,注册信息可插入,则将用户信息插入数据库,否则返回客户端“注册出错"的信息: #region 处理用户注册信息                      if (info==0)//分辨出用户发送的是注册信息                      {                          string Accounts = umessage。Accounts;                          SqlDataReader usdr = FPara。SqlReader("select * from TCP_UserInfo where UserAccount=’" + Accounts + "'”, FPara.connStr);                          if (usdr != null)                            {                              if (usdr。Read())                              {                                  #region 此处写入返回注册失败的代码          Socket sc = (Socket)alSock[alSock.IndexOf(uc, 0)];                                  sc.Send(chat);                                  #endregion                              }                              else                              {           #region 此处写入插入数据库用户注册信息的代码         Stream ms = new MemoryStream();                                  Socket sc = (Socket)alSock[al
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服