用备课系统开发远程教育课件毕业论文(2)
2014-12-04 01:14
导读:另外,RTF文件对图形的处理是一个很重要的问题,也是实现备课系统的一个难点。在RTF文件中,图形以两种方式存在。第一种是直接嵌入的方式,以"\pic
另外,RTF文件对图形的处理是一个很重要的问题,也是实现备课系统的一个难点。在RTF文件中,图形以两种方式存在。第一种是直接嵌入的方式,以"\pict"命令开始,第二种方式将图片作为OLE对象嵌入,以"\object"命令开始。并且无论以那种方式,整个图片的数据都是由一对大括号括起来的(即"{\object
……}")。每一个OLE对象在RTF中分为两个部分,第一部分是OLE的数据,如果RTF的文件解释器能进行OLE操作时,可以利用这部分的数据得到OLE的属性参数并对其进行修改显示,第二部分由"\result"命令引出,后面跟的其实是一个图片,当RTF的文件解释器不能进行OLE操作时,则可以简单的显示该图片。但这样就不能对该OLE对象进行修改了。图片数据是以Microsoft内部使用的一种矢量图"METAFILE"格式来存储的。在RTF中存放了一个完整的METAFILE文件,但其数据是以ASCII字符的方式存在。由于大多数浏览器都不支持这种格式的图片文件,因此需要将其转换成通用的图片格式,例如:BMP、GIF、JPG等等,但是在Microsoft
Windows的软件开发手册中没有对METAFILE进行说明,因此无法对起进行直接的转换,但是在Microsoft Windows的软件开发包(SDK)(software
develop kid)中有两个函数"GetMetaFile"和"PlayMetaFile",这两个函数可以将一个METAFILE格式的图片直接显示在屏幕上,这样就为格式的转换提供了方便,方法是:首先将以ASCII字符形式存放在RTF中的METAFILE文件变成以16进制数形式存放的独立的文件保存在磁盘的一个临时文件中,然后用"GetMetaFile"和"PlayMetaFile"将其显示在屏幕上(这里的屏幕实际上是一个虚拟的屏幕,即在内存中建立一个假的屏幕数据结构--Memory
DC,里面有虚拟的显示内存,因此在实际的屏幕上看不见图片的显示)。然后用抓图的方