⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 base4.htm

📁 C++Builder教学大全
💻 HTM
📖 第 1 页 / 共 4 页
字号:
在很大程度上,MacPaint文件格式比其他文件格式缺少灵活性。它的一对象只有黑白两色。如果将一整页MacPaint数据以75点/英寸的分辨率打印出来,则只有一页大小,如果在相当昂贵的激光打印机上以最高分辨率300点/英寸打印出来,也只能得到一幅2×2.5-平方英寸大小的MacPaint图像。<br> 
与所有其他通用的图像文件格式不同, MacPaint图像尺寸固定,不论一幅图像的内容是什么,其大小总是576像点(宽)×720像点(长)。<br>   
MacPaint格式有许多令人感兴趣的部分,其中可转换成PC格式的版本更是引人如胜。例如,当我们将一幅图像传到Macintosh上的MacPaint应用程序中时,绘图(paint)程序就会显示出38种图样(patterns)及图像本身。如果我们编辑与一幅特定图像相联的图样,则这些图样保留在被编辑状态。一个MacPaint图像文件中包含图像<br> 
MacPaint格式的这种特性很独特,想建立一些程序,一般很少用到它。然而,如果您有意设计一个应用这一特性的程序,那些在每个MacPaint图像文件中,就会有38种图样定义。后面有几个程序将会使我们看到这些图样。<br> 
在一台Macintosh计算机上,所有文件均以两个chunks的方式来贮存,这些Chunks称为“forks”。它们是数据“fork”及资源“fork”,分别容纳图像信息和程序码。一个MacPaint文件完全由数据“fork”组成,资源“fork”是空的。<br> 
当一个MacPaint文件要移植到其他计算机系统(比如一台PC)时,它是作为单个文件被发送的,这个文件包括两个“fork”的内容和一个MacBinary表头(header,表头记录该文件是如何被分割的,以便在将其返回给Macintosh系统时,可重新产生两个“fork”。MacBinary表头中还记录着所移植文件的类型-比方说,是一个MacPaint文件,而不是一个MacWrite文件。Macintosh文件名称可由1到31个Characters组成。<br> 
严格他说, MacBinary表头不是文件格式的一部分,实际上,在Macintosh系统的各类文件中,并末将该表头作为一种数据结构。不过,在这里将其视作文件的一部分,主要因为人们在PC上见到的绝大多数MacPaint文件的开始处都有这种表头。<br>   
在MacPaint文件中,实际的图像数据位于MacBinary表头及图样数据之后,以及其简单的格式经过压缩。这就是我们首先要研究这种图像文件格式的原因所在。图像数据占据文件的剩余部分。<br> 
<br> 
在一个程序开始分析图像文件之前,首先必须做好一些内部准备工作。举例来说,程序必须弄清文件的实际意义是什么,避免将一个电视游戏的目标程序码作为图像数据来显示。就可支援多种不同规格图像的图像格式而言,还必须确定出某一具体文件的实际大小。所有MacPaint图像大小都一样,所以还原它们的软件不必担心这方面的内部工作。<br> 
MacBinary表头中有两个长整数,分别用来定义Macintosh文件类型及文件的创建者(files    
creator),Mac中有一套独特的系统专用于维护这种数据。每个文件“类型”指定一个4byte程序码(code),这4个bytes既可作为4个byte来处理,也可作为一个长整数来处理,主要根据当时用哪一种方式最方便。每个生成文件的程序还有一个4byte的署名,称为“创建者(creator)”域(field)。MacPaint文件的文件类型是PNTs,如果文件最初是由MacPaint建立,则其“创建者”域为MPNT。然而,由于有多个不同的Macintosh应用程序能够产生MacPaint格    
式文件,所以我们不能假定“创建者”域就是MPNT。<br> 
类型域(Type field)位于MactBinary表头的第0041H到0044H byte之中。这样,如果从这一位置开始的4个byte是PNIG;就可认为这是个MacPaint图像文件,并对其(比如前述的动物图像文件)进行解码。<br>   
移植到PC上的Macintosh文件原始名称保存在MacBinary表头的第2至6个byte中,表头中的第一个byte始终是零。文件名称以Pascal语言风格贮存,即字符串中的第一个byte表示该字符串剩余部分的长度。字符甲没有必要以零作为结束标志。<br> 
最后,从第132个bytes开始,一直到文件出现,即超过MacBinary表头4个byte,都是图样数据,每个图样为8个bytes长。<br> 
<br> 
做为一种通用的单色图形格式, MacPaint文件的主要缺点很容易列举。它固定的图像尺寸是一个明显的问题,因为大幅图形(特别是那些来自扫描器的)是通用的,并且是人们有兴趣研究的。再者,如果我们把MacBinary表头和它的绘画图样包括在内,那么这种文件格式就要携带一个超大的文件表头。<br>   
因此,仅仅有少数几种PC应用程序确实想要接收MacPaint文件。如果有人硬要的话,也有某些PC应用程序会这样做,但是这并非它们的优先选择。<br> 
GEM/IMG图像文件是这些应用程序最先的选择之一,它在许多方面鉴于MacPaint文件的优点一有效的图像压缩法,一种易于解码的格式,等等一可以说,它没有什么不足之处。除此之外,IMG格式适用于任何尺寸的图像,其表头是本书讨论的所有文件表头中最小的一个,只有16    
byte。<br> 
尽管IMG文件具有这些特性,但它们在桌面排版领域之外并不十分流行。如果对PC来说有一种通用的图像文件格式,那么它或许就是PC    
Paintbrush PCX格式,我们将在下一节详细讨论这种格式。通常IMG格式与Digital    
Reesearch的有关应用程序以及Ventura Publisher排版软件相联系,这两种软件一个应用了GEM视窗环境,一个应用在改进的GEM排版下。<br>   
若要设计一个基于Ventura Publisher软件的图像处理应用程序,就必然会涉及到IMG文件。Ventura以一种独特的方式处理它的图像文件。在桌上排版文件数据中,尽管它声称自己完全可以应付IMG,MacPaint,TIFF以及PCX图像文件,但实际上它只适于处理IMG文件。当请求读入其他三种文件时,每输人一个文件,它都将其转变为IMG格式。这就意味着如果想用Ventura系统处理一个PCX文件,那么需在磁盘上建立两个文件,一个是PCX文件本身,另一个是与它等价的IMG文件,这是一个明显的缺点。当然,最好在Ventura系统中使用其熟悉的文件(比如IMG),这样,即可节省硬件空间又可节省转变时间。<br>   
<br> 
PDF(Portable Document Format)是为了使文档能够在多种平台上阅读而设计的,它是平台无关的,包含了字体、图表、图像和打印控制数据;PDF文件使用了工业标准的压缩算法,通常比PostScript文件小,易于传输与存储;它还是页独立的,可以单独处理各页,特别适合多处理器系统的工作。<br>   
PDF文件有三种类型:图像型(位图格式)、标志型(包含电子文本、可标度、索引、搜索、拷贝)和混合型(包含原始图像及识别后的隐藏文本,能保持文档的原状、并可进行文档搜索)<br> 
正是由于PDF文件的种种优点,它逐渐成为出版业中的新宠。大家喜欢电子图书,多采用PDF文件格式;而在文档的国际化交流方面,它也已成为Internet上为大家所接受的最好方式。Adobe    
公司提供的免费的PDF文件阅读器Acrobat Reader就是很好的阅览器。<br>   
<br> 
在介绍PostScript 文件格式时已述及,PDF文件可以从PS    
文件转换而来,那么,这里我们介绍一下其他的生成方式。<br> 
上已述及PDF文件有三种类型:图像型、标志型和混合型,其生成方法不尽相同。如利用Acrobat    
3.0中的Acrobat Scan可直接借助扫描仪生成图像型PDF文件,而Adobe    
Capture可在Acrobat Scan的基础上生成标准型和混合型两种PDF文件,而且它是生成混合型PDF文件的唯一途径,但二者处理的对象均是已出版或打印的文档。<br>   
对于多数一般用户而言,是希望在接将电子文档转换为PDF文件,那么利用Acrobat    
3.0中的Acrobat PDF Writer驱动程序是最易尝试的方法。实际上,安装Acrobat    
3.0时,如果选装了该组件,安装完毕,你会发现自己的计算机上多了一个名为“Acrobat    
PDF Writer”的打印机。启动任何一个支持打印的文档编辑器,选用Acrobat    
PDF Writer“打印”你的文档(当然别忘了输入文件名及其他一些信息),你就可以得到你那篇文裆的PDF文件了。<br>   
如果你已经安装了Word(对Excel也一样), PDF Writer在安装过程中会为Word加载一个宏文件。安装PDF    
Writer后你可看到Word中新增的工具条,在Word的“文件”菜单下,你也会发现一个新选项:“Creat    
Adobe PDF”。<br>   
另外,如果你发现用PDF Writer生成的文件质量不好,那么建议你先生成PS文件,然后用Acrobat    
Distiller转换为PDF文件,质量是会有所改善的。如果你手中有Acrobat    
3.0这也是生成PDF文件的一个好方法,当然,那些影响打印质量的参数,就需要你自己在PostScript打印机属性里去尝试了。<br> 
下面我们再来介绍一下如何从PDF文件中提取纯文本。<br> 
随着电子书刊的流行和PDF文件运用场合的增多,不少人在阅读PDF文件之余,还希望能把文字内容“剪裁”下来,进行一些纯文本的处理工作,比如编辑或引用等。这就遇到了PDF文件的“文本化”问题。<br> 
不论是Acrobat Reader还是Acrobat 3.0软件包,都没有提供将PDF文件转换为文本文件的功能。我们一般能够作到的,是利用Acrobat    
Reader提供的文本选取功能(在工具栏上可以找到一种selects the    
text selection tool),将所需要的文本内容COPY下来。这种功能适用于处埋有限的文本,复制较大篇辐的内容则比较麻烦。同时,PDF文件在制作生成的时候,是可以对阅读者的访问权限进行限制的,比如,可以禁止打印,也可以禁止使用文本选取功能。<br>   
<br> 
Windows以其直观、友好的图形用户界面和多任务多窗口的操作环境,吸引了越来越多的计算机用户和生产厂家,目前Windows已成为PC机窗口环境的标准。Windows对多媒体的支持是从对Windows    
3.0增加多媒体扩展部分开始的,随后于1992年4月推出支持多媒体的Windows    
3.1。Windows 3.1主要支持多媒体中的音频和静态图象,同时也增加了动画功能。<br>   
对于视频图象,Windows本身没有提供处理功能,但是Windows 3.1的多媒体控制接口MCI(Multimedia    
Control Interface)使Windows具有设备独立性,从而允许多媒体硬件生产厂家用DDK开发Windows下的驱动程序,将多媒体硬件加到Windows中,从而实现视频功能。MCI是一个介于Windows与硬件设备间的协议层,通过它Windows就使应用程序可与任何有多媒体扩展驱动程序的设备相配合。DVI系统就是MCI在Windows下的使用。1993年1月,Microsoft公司与Intel公司、IBM公司等合作,结合Microsoft的AVI(Audio    
Video Interleaved)标准与Intel的Indeo Video技术,发布了Video for    
Windows,使得任何PC机都能在无特定硬件支持的条件下播放视频画面。Video    
for Windows是基于AVI的一组应用程序。<br>   
Microsoft公司的AVI格式是一个RIFF文件说明,它用于获取、编辑以及演示音频/视频序列。一般说来,AVI文件包含了不同类型的数据流。许多AVI序列将用到音频和视频流。一个简单的略经变化的AVI序列可能用到视频数据而不需要音频数据,特殊的AVI序列也许还包括一个控制路径(control    
track)或者MIDI路径作为附加的数据流。控制路径能控制外部设备诸如一个MCI视频显示器。MIDI路径能够为结果提供背景音乐。一个特殊的序列需要一个特别的控制程序,这个特殊的控制程序不仅能够利用它的功能来阅读和演示AVI序列,而且能阅读和演示特殊文件中的AVI序列,这些应用忽略特殊文件中的非AVI数据。这里介绍的AVI文件是只包括视频和音频数据的文件。内容主要包括以下部分:<br> 
·AVI文件必需块<br> 
·AVI文件任选块<br> 
·写AVI文件的子程序的方法<br> 
·在Windows中播放AVI文件的代码<br> 
<br> 
Microsoft制定的AVI标准格式是一种软件辅助的数字化视频压缩技术,使用它能快速地从一个数字存储设备中解压缩图象。此标准与CD-ROM的流通速率(150KB/S)相一致。AVI文件的存储格式采取了Audio和Video交错存储的方式,这种交错的存储保证了视频画面与音频同步。<br> 
AVI文件用的是AVI RIFF形式,AVI RIFF形式由字串“AVI”标识。所有的AVI文件都包括两个必须的LIST块。这些块定义了流和数据流的格式。AVI文件可能还包括一个索引块。这个任选的块给出了文件中这些数据块的地址。一个具有上述内容的AVI文件具有以下形式:<br>   
RIFF ( 'AVI'<br>   
LIST ('hdrl'<br>   
}<br> 
LIST (' movi '<br>   
)<br> 
[' idxl' &lt;AVI Index&gt;]<br>   
}<br> 
其中LIST块的索引块都是RIFF'AVI' 块的子块,'AVI'    
块标识了此文件是一个AVIRIFF文件。LIST块“hdrl”定义了数据的格式,它是必须出现的LIST块中的第一块。    
LIST块' movi' 包含了AVI序列的数据,是必须出现的LIST块中的第二块。'idxl'    
是任选的索引块。AVI文件中这三项内容必须按适当的次序排列。<br> 
RIFF ( ' AVI '<br>   
LIST (' hdrl '<br>   
' avih' (&lt;Main AVI Header&gt; )<br>   
LIST ( ' Strl '<br>   
' strh' ( &lt;Stream header&gt; )<br>   
' strf' (&lt;Stream format&gt; )<br>   
' strd' (additional header data)<br>   
)<br> 
)<br> 
LIST (' movi '&nbsp;<br>   
{kk1}SubChunk | LIST('rec'<br>   
SubChunk1<br> 
SubChunk2<br> 
)<br> 
}<br> 
)&nbsp;<br> 
['idxl'&lt;AVIIndex&gt;]<br> 
)&nbsp;<br> 
LIST块' hdrl' 以及' movi'    
运用的是子块形式。从以下例子可以看出扩充后的AVIRIFF形式包含有完整的LIST块'    
hdrl' 和' movi' 。</p>   
<p align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;    
<a href="#top">返回到上面</a></p> 
 </body>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -