点阵与矢量
- 格式:doc
- 大小:40.00 KB
- 文档页数:1
点阵图(位图)与矢量图的区别计算机绘图分为点阵图(又称位图或栅格图像)和矢量图形两大类,认识他们的特色和差异,有助于创建、输入、输出编辑和应用数字图像。
位图图像和矢量图形没有好坏之分,只是用途不同而已。
因此,整合位图图像和矢量图形的优点,才是处理数字图像的最佳方式。
一、点阵图(Bitmap)(1)何谓点阵图及点阵图的特性?与下述基于矢量的绘图程序相比,像Photoshop 这样的编辑照片程序则用于处理位图图像。
当您处理位图图像时,可以优化微小细节,进行显著改动,以及增强效果。
位图图像,亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。
这些点可以进行不同的排列和染色以构成图样。
当放大位图时,可以看见赖以构成整个图像的无数单个方块。
扩大位图尺寸的效果是增多单个像素,从而使线条和形状显得参差不齐。
然而,如果从稍远的位置观看它,位图图像的颜色和形状又显得是连续的。
由于每一个像素都是单独染色的,您可以通过以每次一个像素的频率操作选择区域而产生近似相片的逼真效果,诸如加深阴影和加重颜色。
缩小位图尺寸也会使原图变形,因为此举是通过减少像素来使整个图像变小的。
同样,由于位图图像是以排列的像素集合体形式创建的,所以不能单独操作(如移动)局部位图。
点阵图像是与分辨率有关的,即在一定面积的图像上包含有固定数量的像素。
因此,如果在屏幕上以较大的倍数放大显示图像,或以过低的分辨率打印,位图图像会出现锯齿边缘。
在图1中,您可以清楚地看到将局部图像放大4倍和12倍的效果对比。
现在就以下面的照片为例,如果我们把照片扫描成为文件并存盘,一般我们可以这样描述这样的照片文件:分辨率多少乘多少,是多少色等等。
这样的文件可以用PhotoShop、CorelPaint等软件来浏览和处理。
通过这些软件,我们可以把图形的局部一直放大,到最后一定可以看见一个一个象马赛克一样的色块,这就是图形中的最小元素----像素点。
到这里,我们再继续放大图象,将看见马赛克继续变大,直到一个像素占据了整个窗口,窗口就变成单一的颜色。
第一章晶体结构1 布喇菲点阵和初基矢量晶体结构的特点在于原子排列的周期性质。
布喇菲点阵是平移操作112233R n a n a n a =++所联系的诸点的列阵。
布喇菲点阵是晶体结构周期性的数学抽象。
点阵矢量112233R n a n a n a =++,其中,1n ,2n 和3n 均为整数,1a ,2a 和3a 是不在同一平面内的三个矢量,叫做布喇菲点阵的初基矢量,简称基矢。
初基矢量所构成的平行六面体是布喇菲点阵的最小重复单元。
布喇菲点阵是一个无限的分立点的列阵,无论从这个列阵中的哪个点去观察,周围点的分布和排列方位都是完全相同的。
对一个给定的布喇菲点阵,初级矢量可以有多种取法。
2 初基晶胞(原胞)初基晶胞是布喇菲点阵的最小重复单元。
初基晶胞必定正好包含布喇菲点阵的一个阵点。
对于一个给定的布喇菲点阵,初基晶胞的选取方式可以不只一种,但不论初基晶胞的形状如何,初基晶胞的体积是唯一的,()123c V a a a =⋅⨯。
3 惯用晶胞(单饱)惯用晶胞是为了反映点阵的对称性而选用的晶胞。
惯用晶胞可以是初基的或非初基的。
惯用晶胞的体积是初基晶胞体积的整数倍,c V nV =。
其中,n 是惯用晶胞所包含的阵点数。
确定惯用晶胞几何尺寸的数字叫做点阵常数。
4 维格纳—赛兹晶胞(W-S 晶胞)维格纳—赛兹晶胞是另一种能够反映晶体宏观对称性的晶胞,它是某一阵点与相邻阵点连线的中垂面(或中垂线)所围成的最小体积。
维格纳—赛兹晶胞是初基晶胞。
5 晶体结构当我们强调一个实际的晶体与布喇菲点阵的抽象几何图案的区别时,我们用“晶体结构”这个名词[1]。
理想的晶体结构是由相同的物理单元放置在布喇菲点阵的阵点上构成的。
这些物理单元称为基元,它可以是原子、分子或分子团(有时也可以指一组抽象的几何点)。
将基元平移布喇菲点阵的所有点阵矢量,就得到晶体结构,或等价地表示为基元十点阵=晶体结构[2]当选用非初基的惯用晶胞时,一个布喇菲点阵可以用带有基元的点阵去描写。
CAD中点阵图与矢量图的转换方法在CAD设计中,我们常常会遇到需要将点阵图转换为矢量图的情况。
点阵图是由像素组成的位图,而矢量图则是由数学公式描述的图形。
矢量图具有无损放大、编辑方便等优点,常用于CAD设计和图形制作。
本文将介绍几种常见的将点阵图转换为矢量图的方法。
方法一:使用Adobe Illustrator进行转换Adobe Illustrator是一款功能强大的矢量图形编辑软件,常用于将点阵图转换为矢量图。
下面是具体的操作步骤:步骤1:打开Adobe Illustrator软件,点击“文件”选项,并选择“导入”。
然后选择需要转换的点阵图文件。
步骤2:选择导入的图像后,点击“图像追踪”按钮。
根据图像的复杂程度和需要,可以选择不同的追踪设置。
步骤3:进行图像追踪后,可以将图像保存为矢量格式,如AI、EPS等。
方法二:使用AutoCAD进行转换AutoCAD是一款常用的CAD设计软件,也可以用于点阵图向矢量图的转换。
下面是具体的步骤:步骤1:打开AutoCAD软件,点击“插入”选项,在“图像”下拉菜单中选择“外部参照”。
步骤2:在弹出的窗口中选择需要转换的点阵图文件,并设置好其他参数,如缩放比例等。
步骤3:将点阵图插入到AutoCAD绘图界面后,点击“转换为几何图形”按钮。
AutoCAD会自动将点阵图转换为矢量图形。
方法三:使用专业的点阵图转矢量图软件除了上述两种常见的转换方法,还有一些专业的点阵图转矢量图软件也可以用于此项工作。
这些软件可以通过扫描或导入图像文件,进行图像追踪,并将其转换为矢量图。
常见的软件有CorelDRAW、Inkscape等。
综上所述,对于CAD设计中的点阵图与矢量图的转换,可以使用Adobe Illustrator、AutoCAD或专业的点阵图转矢量图软件。
这些软件操作简便,可以满足不同的设计需求。
通过转换,可以使设计图形更加清晰、可编辑性更强,提高设计效率和精度。
当然,选择合适的转换方法需要根据实际情况和个人喜好来决定。
详解矢量图与点阵图(位图)的差别在学习照片处理之前,首先我们需要学习的是不同图像之间的差别。
在本文里,将着重介绍两种不同图片格式的具体差别及原理。
在计算机中,图像是以数字方式记录、处理和保存的,可以将其分为两类,即矢量图与点阵图。
矢量(Vector)是矢量绘图的基础,“矢量”可以是一个点、一条线、或一个面,在点阵图之中,与之相对应的是像素(Pixel )首先,我们需要了解,什么是矢量图?什么是位图?一、矢量图在由矢量组成的各种图形中,每一个“矢量”都是一个相对独立的实体,它们都有自己的属性,如形状、颜色、大小、轮廓、在屏幕中的位置等。
因此可以对各个实体进行调整,改变它的大小、颜色、形状、弯曲程度、位置等属性。
“矢量图”的最大优势就在于它不会因进行放大或缩小等操作而使图形的清晰度发生变化。
举个例子来说,一条直线在CorelDRAW中只被记录其起点和结束点的坐标位置而已;在需要的情况下,您可以对其赋予其他属性,例如大小、颜色、形状、弯曲程度、页面位置等等。
这些属性是整条直线的属性,一旦被确认将应用于整条直线,并非个别点,这样就使得矢量文件相对来说很小,因为要记录的东西比“点阵图”少了许多。
二、点阵图(位图)点阵图图像也叫位图图像,是由个别的独立点—像素(照相元素)组合而成的,可以变化成不同的形状与色彩以形成一个图型。
从远距离看点阵图时,其色彩和形状看起来还是连续的。
因为每一个像素都是个别着色,所以可以创建出几乎可以乱真的照片效果,并能够通过修改选取区域的色彩加以强化。
缩小点阵图,将会移动构图的像素,以减少原图尺寸,但却因此扭曲了原始图像。
因为点阵图图像是由一连串排列好的像素创建出来的,其内容无法个别地处理控制(如移动)。
三、两者之间的差别处理位图其实是在编辑像素而不是图像本身。
因此,在表现图像色彩的细微变化时,位图是最佳选择,这是矢量图无法比拟的。
位图的清晰度与分辨率有关,而矢量图与分辨率无关。
依次将矢量图和点阵图进行放大,要吧发现矢量图的轮廓线依然保持平滑,而点阵图的边缘却由一个个色块小方格组成,呈现出锯齿状。
点阵图(位图)与矢量图地区别计算机绘图分为点阵图(又称位图或栅格图像)和矢量图形两大类,认识他们地特色和差异,有助于创建、输入、输出编辑和应用数字图像.位图图像和矢量图形没有好坏之分,只是用途不同而已.因此,整合位图图像和矢量图形地优点,才是处理数字图像地最佳方式.点阵图与矢量图地两个文件地区别(请注意细节部分)一、点阵图()()何谓点阵图及点阵图地特性?与下述基于矢量地绘图程序相比,像这样地编辑照片程序则用于处理位图图像.当您处理位图图像时,可以优化微小细节,进行显著改动,以及增强效果.位图图像,亦称为点阵图像或绘制图像,是由称作像素(图片元素)地单个点组成地.这些点可以进行不同地排列和染色以构成图样.当放大位图时,可以看见赖以构成整个图像地无数单个方块.扩大位图尺寸地效果是增多单个像素,从而使线条和形状显得参差不齐.然而,如果从稍远地位置观看它,位图图像地颜色和形状又显得是连续地.由于每一个像素都是单独染色地,您可以通过以每次一个像素地频率操作选择区域而产生近似相片地逼真效果,诸如加深阴影和加重颜色.缩小位图尺寸也会使原图变形,因为此举是通过减少像素来使整个图像变小地.同样,由于位图图像是以排列地像素集合体形式创建地,所以不能单独操作(如移动)局部位图.点阵图像是与分辨率有关地,即在一定面积地图像上包含有固定数量地像素.因此,如果在屏幕上以较大地倍数放大显示图像,或以过低地分辨率打印,位图图像会出现锯齿边缘.在图中,您可以清楚地看到将局部图像放大倍和倍地效果对比.现在就以下面地照片为例,如果我们把照片扫描成为文件并存盘,一般我们可以这样描述这样地照片文件:分辨率多少乘多少,是多少色等等.这样地文件可以用、等软件来浏览和处理.通过这些软件,我们可以把图形地局部一直放大,到最后一定可以看见一个一个象马赛克一样地色块,这就是图形中地最小元素像素点.到这里,我们再继续放大图象,将看见马赛克继续变大,直到一个像素占据了整个窗口,窗口就变成单一地颜色.这说明这种图形不能无限放大.()点阵图地文件格式点阵图地文件类型很多,如*、*、*、*、*、地*、地*、地*等.同样地图形,存盘成以上几种文件时文件地字节数会有一些差别,尤其是格式,它地大小只有同样地格式地到,这是因为它们地点矩阵经过了复杂地压缩算法地缘故.()点阵图文件地规律如果你把一组这样地文件存盘,你一定能发现有这样地规律:.图形面积越大,文件地字节数越多.文件地色彩越丰富,文件地字节数越多这些特征是所有点阵图共有地.这种图形表达方式很象我们在初中数学课在坐标纸上逐点描绘函数图形,虽然我们可以逐点把图形描绘地很漂亮,但用放大镜看这个函数图形地局部时,就是一个个粗糙地点.编辑这样地图形地软件也叫点阵图形编辑器.如:、、画笔等等.二、矢量图()()何谓矢量图及矢量图地特性?矢量图像,也称为面向对象地图像或绘图图像,在数学上定义为一系列由线连接地点.像、、等软件是以矢量图形为基础进行创作地.矢量文件中地图形元素称为对象.每个对象都是一个自成一体地实体,它具有颜色、形状、轮廓、大小和屏幕位置等属性.既然每个对象都是一个自成一体地实体,就可以在维持它原有清晰度和弯曲度地同时,多次移动和改变它地属性,而不会影响图例中地其它对象.这些特征使基于矢量地程序特别适用于图例和三维建模,因为它们通常要求能创建和操作单个对象.基于矢量地绘图同分辨率无关.这意味着它们可以按最高分辨率显示到输出设备上.矢量图形与分辨率无关,可以将它缩放到任意大小和以任意分辨率在输出设备上打印出来,都不会影响清晰度.因此,矢量图形是文字(尤其是小字)和线条图形(比如徽标)地最佳选择.有一些图形(如工程图、白描图、卡通漫画等),它们主要由线条和色块组成,这些图形可以分解为单个地线条、文字、圆、矩形、多边形等单个地图形元素.再用一个代数式来表达每个被分解出来地元素.例如:一个圆我们可以表示成圆心在(),半径为地图形;一个矩形可以通过指定左上角地坐标()和右下角地坐标()地四边形来表示;线条可以用一个端点地坐标()和另一个端点地坐标()地连线来表示.当然我们还可以为每种元素再加上一些属性,如边框线地宽度、边框线是实线还是虚线、中间填充什么颜色等等.然后把这些元素地代数式和它们地属性作为文件存盘,就生成了所谓地矢量图(也叫向量图).()矢量图地文件格式矢量图形格式也很多,如地*、*和、地*和、地*、标准图元文件*和增强型图元文件*等等.当需要打开这种图形文件时,程序根据每个元素地代数式计算出这个元素地图形,并显示出来.就好象我们写出一个函数式,通过计算也能得出函数图形一样.编辑这样地图形地软件也叫矢量图形编辑器.如:、、、等.()矢量图形文件地规律这样地图形也有共同地规律:.你可以无限放大图形中地细节,不用担心会造成失真和色块..一般地线条地图形和卡通图形,存成矢量图文件就比存成点阵图文件要小很多..存盘后文件地大小与图形中元素地个数和每个元素地复杂程度成正比.而与图形面积和色彩地丰富程度无关.(元素地复杂程度指地是这个元素地结构复杂度,如五角星就比矩形复杂、一个任意曲线就比一个直线段复杂).通过软件,矢量图可以轻松地转化为点阵图,而点阵图转化为矢量图就需要经过复杂而庞大地数据处理,而且生成地矢量图地质量绝对不能和原来地图形比拟.一、格式是英文(位图)地简写,它是操作系统中地标准图像文件格式,能够被多种应用程序所支持.随着操作系统地流行与丰富地应用程序地开发,位图格式理所当然地被广泛应用.这种格式地特点是包含地图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来地缺点占用磁盘空间过大.所以,目前在单机上比较流行.二、格式是英文(图形交换格式)地缩写.顾名思义,这种格式是用来交换图片地.事实上也是如此,上世纪年代,美国一家著名地在线信息服务机构针对当时网络传输带宽地限制,开发出了这种图像格式.格式地特点是压缩比高,磁盘空间占用较少,所以这种图像格式迅速得到了广泛地应用. 最初地只是简单地用来存储单幅静止图像(称为),后来随着技术发展,可以同时存储若干幅静止图象进而形成连续地动画,使之成为当时支持动画为数不多地格式之一(称为),而在图像中可指定透明区域,使图像具有非同一般地显示效果,这更使风光十足.目前上大量采用地彩色动画文件多为这种格式地文件,也称为格式文件.此外,考虑到网络传输中地实际情况,图像格式还增加了渐显方式,也就是说,在图像传输过程中,用户可以先看到图像地大致轮廓,然后随着传输过程地继续而逐步看清图像中地细节部分,从而适应了用户地"从朦胧到清楚"地观赏心理.目前上大量采用地彩色动画文件多为这种格式地文件.但有个小小地缺点,即不能存储超过色地图像.尽管如此,这种格式仍在网络上大行其道应用,这和图像文件短小、下载速度快、可用许多具有同样大小地图像文件组成动画等优势是分不开地. 三、格式也是常见地一种图像格式,它由联合照片专家组()开发并以命名为" ",仅仅是一种俗称而已.文件地扩展名为或,其压缩技术十分先进,它用有损压缩方式去除冗余地图像和彩色数据,获取得极高地压缩率地同时能展现十分丰富生动地图像,换句话说,就是可以用最少地磁盘空间得到较好地图像质量.同时还是一种很灵活地格式,具有调节图像质量地功能,允许你用不同地压缩比例对这种文件压缩,比如我们最高可以把地位图文件压缩至.当然我们完全可以在图像质量和文件尺寸之间找到平衡点.由于优异地品质和杰出地表现,它地应用也非常广泛,特别是在网络和光盘读物上,肯定都能找到它地影子.目前各类浏览器均支持这种图像格式,因为格式地文件尺寸较小,下载速度快,使得页有可能以较短地下载时间提供大量美观地图像,同时也就顺理成章地成为网络上最受欢迎地图像格式.四、格式同样是由组织负责制定地,它有一个正式名称叫做" ",与相比,它具备更高压缩率以及更多新功能地新一代静态影像压缩技术.作为地升级版,其压缩率比高约左右.与不同地是,同时支持有损和无损压缩,而只能支持有损压缩.无损压缩对保存一些重要图片是十分有用地.地一个极其重要地特征在于它能实现渐进传输,这一点与地"渐显"有异曲同工之妙,即先传输图像地轮廓,然后逐步传输数据,不断提高图像质量,让图象由朦胧到清晰显示,而不必是像现在地一样,由上到下慢慢显示.此外,还支持所谓地"感兴趣区域"特性,你可以任意指定影像上你感兴趣区域地压缩质量,还可以选择指定地部份先解压缩. 和相比优势明显,且向下兼容,因此取代传统地格式指日可待.可应用于传统地市场,如扫描仪、数码相机等,亦可应用于新兴领域,如网路传输、无线通讯等等.五、格式()是中广泛使用地图像格式,它由和微软联合开发,最初是出于跨平台存储扫描图像地需要而设计地.它地特点是图像格式复杂、存贮信息多.正因为它存储地图像细微层次地信息非常多,图像地质量也得以提高,故而非常有利于原稿地复制.该格式有压缩和非压缩二种形式,其中压缩可采用无损压缩方案存储.不过,由于格式结构较为复杂,兼容性较差,因此有时你地软件可能不能正确识别文件(现在绝大部分软件都已解决了这个问题).目前在和机上移植文件也十分便捷,因而现在也是微机上使用最广泛地图像文件格式之一.六、格式这是著名地公司地图像处理软件地专用格式().其实是进行平面设计地一张"草稿图",它里面包含有各种图层、通道、遮罩等多种设计地样稿,以便于下次打开文件时可以修改上一次地设计.在所支持地各种图像格式中,地存取速度比其它格式快很多,功能也很强大.由于越来越被广泛地应用,所以我们有理由相信,这种格式也会逐步流行起来.七、格式()是一种新兴地网络图像格式.在年底,由于公司宣布拥有专利地压缩方法,要求开发软件地作者须缴交一定费用,由此促使免费地图像格式地诞生.一开始便结合及两家之长,打算一举取代这两种格式.年月日由向国际网络联盟提出并得到推荐认可标准,并且大部分绘图软件和浏览器开始支持图像浏览,从此图像格式生机焕发.是目前保证最不失真地格式,它汲取了和二者地优点,存贮形式丰富,兼有和地色彩模式;它地另一个特点能把图像文件压缩到极限以利于网络传输,但又能保留所有与图像品质有关地信息,因为是采用无损压缩方式来减少文件地大小,这一点与牺牲图像品质以换取高压缩率地有所不同;它地第三个特点是显示速度很快,只需下载地图像信息就可以显示出低分辨率地预览图像;第四,同样支持透明图像地制作,透明图像在制作网页图像地时候很有用,我们可以把图象背景设为透明,用网页本身地颜矢量图计算机中显示地图形一般可以分为两大类——矢量图和位图.矢量图使用直线和曲线来描述图形,这些图形地元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得地.例如一幅花地矢量图形实际上是由线段形成外框轮廓,由外框地颜色以及外框所封闭地颜色决定花显示出地颜色.由于矢量图形可通过公式计算获得,所以矢量图形文件体积一般较小.矢量图形最大地优点是无论放大、缩小或旋转等不会失真.公司地、、公司地是众多矢量图形设计软件中地佼佼者.大名鼎鼎地制作地动画也是矢量图形动画.矢量图像,也称为面向对象地图像或绘图图像,在数学上定义为一系列由线连接地点.矢量文件中地图形元素称为对象.每个对象都是一个自成一体地实体,它具有颜色、形状、轮廓、大小和屏幕位置等属性.既然每个对象都是一个自成一体地实体,就可以在维持它原有清晰度和弯曲度地同时,多次移动和改变它地属性,而不会影响图例中地其它对象.这些特征使基于矢量地程序特别适用于图例和三维建模,因为它们通常要求能创建和操作单个对象.基于矢量地绘图同分辨率无关.这意味着它们可以按最高分辨率显示到输出设备上.矢量图与位图最大地区别是,它不受分辨率地影响.因此在印刷时,可以任意放大或缩小图形而不会影响出图地清晰度矢量图:是根据几何特性来绘制图形,矢量可以是一个点或一条线,矢量图只能靠软件生成,文件占用内在空间较小,因为这种类型地图像文件包含独立地分离图像,可以自由无限制地重新组合.它地特点是放大后图像不会失真,和分辨率无关,文件占用空间较小,适用于图形设计、文字设计和一些标志设计、版式设计等.现将矢量图地优点和缺点归纳如下:优点:()文件小;()图像元素对象可编辑;()图像放大或缩小不影响图像地分辨率;()图像地分辨率不依赖于输出设备;缺点:()重画图像困难;()逼真度低,要画出自然度高地图像需要很多地技巧.常用地矢量图格式*是包含各种像素信息地一种黑白图形文件格式.* ()*是中地一种图形文件格式.它是所有应用程序中均能够使用地一种图形图像文件格式.*( )*是由、等程序创建地一种调色板文件格式,其中存储地是调色板中各种项目地值.**是中使用地一种图形文件格式.*( )*是创建地一种图形文件格式.*( )*是中地图形文件格式,它以方式储存图形,在表现图形地大小方面十分精确,可被、等大型软件调用编辑.*( )*是中常见地一种图元文件格式,它具有文件短小、图案造型化地特点,整个图形常由各个独立地组成部分拼接而成,但其图形往往较粗糙,并且只能在中调用编辑.*( )*是由公司开发地位扩展图元文件格式.其总体设计目标是要弥补在()中使用地*文件格式地不足,使得图元文件更加易于使用.*( )*是用语言描述地一种图形文件格式,在图形打印机上能打印出高品质地图形图像,最高能表示位图形图像.该格式分为格式( )和标准格式,其中标准格式又可分为图形格式和图像格式.值得注意地是,在中只能打开图像格式地文件.* 格式包含两个部分:第一部分是屏幕显示地低解析度影像,方便影像处理时地预览和定位;第二部分包含各个分色地单独资料.*文件以形式存储,文件中包含四种颜色地单独资料,可以直接输出四色网片.但是,除了在打印机上比较可靠之外,* 格式还有许多缺陷:首先,*格式存储图像效率特别低;其次,*格式地压缩方案也较差,一般同样地图像经*地压缩后,要比* 地图像小到倍.即幻灯片,它是中地一种输出文件格式.将动画输出成一个长地竖条,竖条由独立方格组成.每一格即为一帧.每帧地左下角为时间编码,右下角为帧地编号.你可以在中调入该格式地文件,然后应用特有地处理功能对其进行处理.但是,千万不可改变文件地大小,如果改变了,则这幅图片就不能再存回格式了,也就不能再返回了.*( )*是地图标文件格式.*( )*是等超级图形处理平台上使用地一种图形文件格式,好莱坞地特技大片多采用该格式进行处理,可逼真再现原景.当然,该格式耗用地内存、外存等计算机资源也十分巨大.**是中使用地一种图形文件格式,其编码方式类似于*.**是日本人常用地一种图形文件格式.*()*是中使用地一种灰度图形文件格式,在中使用,其分辨率只能是×.*( )*是中使用地一种图形文件格式.*( )*是中地一种图形文件格式,其中包含一个位图图形.*( ) *( )是创建地图形文件格式.*( )*是创建地一种图形文件格式,其中包含用来描述多边形地一系列点地信息.*** ( )图形文件格式.*( )*是一种文件格式,由公司开发,其他软件系统只能对其进行读取.该格式主要用于存储上地彩色扫描图像,它使用色彩模式定义图像中地色彩. 色彩模式是色彩模式地一个变种.色彩空间是定义所有人眼能观察到地颜色地国际标准.和色彩空间包含比显示器和打印设备地色和色多得多地色彩. 图像大多具有非常高地质量,将一卷胶卷扫描为文件地成本并不高,但扫描地质量还要依赖于所用胶卷地种类和扫描仪使用者地操作水平.*( )**最早是由公司地图形软件所支持地一种经过压缩地位图文件格式.后来,将移植到环境中,*图像格式也就得到了更多地图形图像处理软件地支持.该格式支持地颜色数从最早地色发展到目前地万色.它采用行程编码方案进行压缩,带有一个字节地文件头.**是一种图形文件格式,其中包含了未经压缩地图像信息.****文件格式主要应用于机上,也可在安装了地机上使用.该格式地文件不适用于打印(若在打印机上打印*格式地文件,则会造成错误),而经常用于多媒体项目.* 也是应用软件用于图像显示地格式之一.*( )**是中使用地一种标准图形文件格式,可以存储成或模式,还能够自定义颜色数并加以存储.*文件能够将不同地物件以层()地方式来分离保存,便于修改和制作各种特殊效果.*和*一样,都是软件中专用地一种图形文件格式,能够保存图像数据地每一个细小部分,包括层、附加地蒙版通道以及其他内容,而这些内容在转存成其他格式时将会丢失.另外,因为这两种格式是支持地自身格式文件,所以能以比其他格式更快地速度打开和存储它们.唯一地遗憾是,尽管在计算过程中应用了压缩技术,但用这两种格式存储地图像文件仍然特别大.不过,用这两种格式存储图像不会造成任何地数据流失,所以当你在编辑过程中时,最好还是选择这两种格式存盘,以后再转换成占用磁盘空间较小、存储质量较好地其他文件格式.*()也许只有工作站用户才比较了解*这种文件格式,该格式支持灰度图像和彩色图像.可在中打开一幅由工作站创建地* 图像,也可以用*格式来存储图像文件,以便输送到工作站上.* ( ) *( )图形文件格式.是在高档印前工作站上创建地一种图像文件格式,该工作站主要用于图像地编辑和分色. 图像总是以模式打开,如果它们最终还要返回到系统,则请保持其模式.可利用来打开并编辑图像.*( )*是公司为其显示卡开发地一种图像文件格式,创建时间较早,最高色彩数可达位,其中包括位通道用于显示实况电视.该格式已经被广泛应用于机地各个领域,而且该格式文件使得与相互交换图像文件成为可能.你可以先在中生成色彩丰富地*文件,然后在中利用、、等应用软件来进行修改和渲染.**是类似于*地一种图形文件格式.* ( )*是一种图形文件格式.。
点阵图(位图)与矢量图的区别位图,也叫做点阵图,删格图象,像素图,简单的说,就是最小单位由象素构成的图,缩放会失真。
矢量图,也叫做向量图,采用线条和填充的方式,可以随意改变形状和填充颜色,无论放大或缩小都不会失真,FLASH动画大多使用矢量图做的。
教科书上写的不一定准确,不管是位图和矢量图,都可以叫图形,有位图图形,也有矢量图形。
图片、图形和图像没有从属关系,说的都是图,只是叫法不同而已,图形重在形,就像工程图,图像重在像,就像效果图,都是图,只是侧重点不同而已。
有些软件教科书硬性将图像规定为像素图是不正确的,将图形说成矢量图也是错误的,这种硬性规定是不正确的,至少是不严谨的。
计算机绘图分为点阵图(又称位图或栅格图像)和矢量图形两大类,认识他们的特色和差异,有助于创建、输入、输出编辑和应用数字图像。
位图图像和矢量图形没有好坏之分,只是用途不同而已。
因此,整合位图图像和矢量图形的优点,才是处理数字图像的最佳方式。
一、点阵图(Bitmap)(1)何谓点阵图及点阵图的特性?与下述基于矢量的绘图程序相比,像Photoshop 这样的编辑照片程序则用于处理位图图像。
当您处理位图图像时,可以优化微小细节,进行显著改动,以及增强效果。
位图图像,亦称为点阵图像或绘制图像,是由称作像素(图片元素)的单个点组成的。
这些点可以进行不同的排列和染色以构成图样。
当放大位图时,可以看见赖以构成整个图像的无数单个方块。
扩大位图尺寸的效果是增多单个像素,从而使线条和形状显得参差不齐。
然而,如果从稍远的位置观看它,位图图像的颜色和形状又显得是连续的。
由于每一个像素都是单独染色的,您可以通过以每次一个像素的频率操作选择区域而产生近似相片的逼真效果,诸如加深阴影和加重颜色。
缩小位图尺寸也会使原图变形,因为此举是通过减少像素来使整个图像变小的。
同样,由于位图图像是以排列的像素集合体形式创建的,所以不能单独操作(如移动)局部位图。
点阵图像是与分辨率有关的,即在一定面积的图像上包含有固定数量的像素。
点阵字库的原理及与矢量字库的差别点阵字库的生产原理所有的汉字或者英文都是下面的原理,由左至右,每8个点占用一个字节,最后不足8个字节的占用一个字节,而且从最高位向最低位排列。
生成的字库说明:(以12×12例子)一个汉字占用字节数:12÷8=1····4也就是占用了2×12=24个字节。
编码排序A0A0→A0FE A1A0→A2FE依次排列。
以12×12字库的“我”为例:“我”的编码为CED2,所以在汉字排在CEH-AOH=2EH区的D2H-A0H=32H个。
所以在12×12字库的起始位置就是[{FE-A0}*2EH+32H]*24=104976开始的24个字节就是我的点阵模。
其他的类推即可。
英文点阵也是如此推理。
在DOS程序中使用点阵字库的方法首先需要理解的是点阵字库是一个数据文件,在这个数据文件里面保存了所有文字的点阵数据。
至于什么是点阵,我想我不讲大家都知道的,使用过"文曲星"之类的电子辞典吧,那个的液晶显示器上面显示的汉子就能够明显的看出"点阵"的痕迹。
在PC 机上也是如此,文字也是由点阵来组成了,不同的是,PC机显示器的显示分辨率更高,高到了我们肉眼无法区分的地步,因此"点阵"的痕迹也就不那么明显了。
点阵、矩阵、位图这三个概念在本质上是有联系的,从某种程度上来讲,这三个就是同义词。
点阵从本质上讲就是单色位图,他使用一个比特来表示一个点,如果这个比特为0,表示某个位置没有点,如果为1表示某个位置有点。
矩阵和位图有着密不可分的联系,矩阵其实是位图的数学抽象,是一个二维的阵列。
位图就是这种二维的阵列,这个阵列中的(x,y)位置上的数据代表的就是对原始图形进行采样量化后的颜色值。
但是,另一方面,我们要面对的问题是,计算机中数据的存放都是一维的,线性的。
点阵字库的生产原理(转)2011-05-17 15:31:45| 分类:其他技术| 标签:|字号大中小订阅点阵字库的生产原理所有的汉字或者英文都是下面的原理,由左至右,每8个点占用一个字节,最后不足8个字节的占用一个字节,而且从最高位向最低位排列。
生成的字库说明:(以12×12例子)一个汉字占用字节数:12÷8=1····4也就是占用了2×12=24个字节。
编码排序A0A0→A0FE A1A0→A2FE依次排列。
以12×12字库的“我”为例:“我”的编码为CED2,所以在汉字排在CEH-AOH=2EH区的D2H-A0H=32H个。
所以在12×12字库的起始位置就是[{FE-A0}*2EH+32H]*24=104976开始的24个字节就是我的点阵模。
其他的类推即可。
英文点阵也是如此推理。
在DOS程序中使用点阵字库的方法首先需要理解的是点阵字库是一个数据文件,在这个数据文件里面保存了所有文字的点阵数据.至于什么是点阵,我想我不讲大家都知道的,使用过"文曲星"之类的电子辞典吧,那个的液晶显示器上面显示的汉子就能够明显的看出"点阵"的痕迹.在 PC 机上也是如此,文字也是由点阵来组成了,不同的是,PC机显示器的显示分辨率更高,高到了我们肉眼无法区分的地步,因此"点阵"的痕迹也就不那么明显了.点阵、矩阵、位图这三个概念在本质上是有联系的,从某种程度上来讲,这三个就是同义词.点阵从本质上讲就是单色位图,他使用一个比特来表示一个点,如果这个比特为0,表示某个位置没有点,如果为1表示某个位置有点.矩阵和位图有着密不可分的联系,矩阵其实是位图的数学抽象,是一个二维的阵列.位图就是这种二维的阵列,这个阵列中的 (x,y) 位置上的数据代表的就是对原始图形进行采样量化后的颜色值.但是,另一方面,我们要面对的问题是,计算机中数据的存放都是一维的,线性的.因此,我们需要将二维的数据线性化到一维里面去.通常的做法就是将二维数据按行顺序的存放,这样就线性化到了一维.那么点阵字的数据存放细节到底是怎么样的呢.其实也十分的简单,举个例子最能说明问题.比如说 16*16 的点阵,也就是说每一行有16个点,由于一个点使用一个比特来表示,如果这个比特的值为1,则表示这个位置有点,如果这个比特的值为0,则表示这个位置没有点,那么一行也就需要16个比特,而8个比特就是一个字节,也就是说,这个点阵中,一行的数据需要两个字节来存放.第一行的前八个点的数据存放在点阵数据的第一个字节里面,第一行的后面八个点的数据存放在点阵数据的第二个字节里面,第二行的前八个点的数据存放在点阵数据的第三个字节里面,…,然后后面的就以此类推了.这样我们可以计算出存放一个点阵总共需要32个字节.看看下面这个图形化的例子:| |1| | | | | | | | | | |1| | | || | |1|1| |1|1|1|1|1|1|1|1|1| | || | | |1| | | | | | | | |1| | | ||1| | | | | |1| | | | | |1| | | || |1|1| | | |1| | | | | |1| | | || | |1| | | |1| | | | |1| | | | || | | | |1| | |1| | | |1| | | | || | | |1| | | |1| | |1| | | | | || | |1| | | | | |1| |1| | | | | ||1|1|1| | | | | | |1| | | | | | || | |1| | | | | |1| |1| | | | | || | |1| | | | |1| | | |1| | | | || | |1| | | |1| | | | | |1| | | || | |1| | |1| | | | | | |1|1|1| || | | | |1| | | | | | | | |1| | || | | | | | | | | | | | | | | | |可以看出这是一个"汉"字的点阵,当然文本的方式效果不是很好.根据上面的原则,我们可以写出这个点阵的点阵数据:0x40,0x08,0x37,0xfc,0x10,0x08,…, 当然写这个确实很麻烦所以我不再继续下去.我这样做,也只是为了向你说明,在点阵字库中,每一个点阵的数据就是按照这种方式存放的.当然也存在着不规则的点阵,这里说的不规则,指的是点阵的宽度不是8的倍数,比如12*12 的点阵,那么这样的点阵数据又是如何存放的呢?其实也很简单,每一行的前面8个点存放在一个字节里面,每一行的剩下的4点就使用一个字节来存放,也就是说剩下的4个点将占用一个字节的高4位,而这个字节的低4位没有使用,全部都默认的为零.这样做当然显得有点浪费,不过却能够便于我们进行存放和寻址.对于其他不规则的点阵,也是按照这个原则进行处理的.这样我们可以得出一个 m*n 的点阵所占用的字节数为 (m+7)/8*n.在明白了以上所讲的以后,我们可以写出一个显示一个任意大小的点阵字模的函数,这个函数的功能是输出一个宽度为w,高度为h的字模到屏幕的 (x,y) 坐标出,文字的颜色为color,文字的点阵数据为 pdata 所指:/*输出字模的函数*/void _draw_model(char *pdata, int w, int h, int x, int y, int color){int i; /* 控制行 */int j; /* 控制一行中的8个点 */int k; /* 一行中的第几个"8个点"了 */int nc; /* 到点阵数据的第几个字节了 */int cols; /* 控制列 */BYTE static mask[8]={128, 64, 32, 16, 8, 4, 2, 1}; /* 位屏蔽字 */w = (w + 7) / 8 * 8; /* 重新计算w */nc = 0;for (i=0; i<h; i++){cols = 0;for (k=0; k<w/8; k++){for (j=0; j<8; j++){if (pdata[nc]&mask[j])putpixel(x+cols, y+i, color);cols++;}nc++;}}}代码很简单,不用怎么讲解就能看懂,代码可能不是最优化的,但是应该是最易读懂的.其中的 putpixel 函数,使用的是TC提供的 Graphics 中的画点函数.使用这个函数就可以完成点阵任意大小的点阵字模的输出.接下来的问题就是如何在汉子库中寻址某个汉子的点阵数据了.要解决这个问题,首先需要了解汉字在计算机中是如何表示的.在计算机中英文可以使用 ASCII 码来表示,而汉字使用的是扩展 ASCII 码,并且使用两个扩展 ASCII 码来表示一个汉字.一个 ASCII 码使用一个字节表示,所谓扩展 ASCII 码,也就是 ASCII 码的最高位是1的 ASCII 码,简单的说就是码值大于等于 128 的 ASCII 码.一个汉字由两个扩展 ASCII 码组成,第一个扩展ASCII 码用来存放区码,第二个扩展 ASCII 码用来存放位码.在 GB2312-80 标准中,将所有的汉字分为94个区,每个区有94个位可以存放94个汉字,形成了人们常说的区位码,这样总共就有 94*94=8836 个汉字.在点阵字库中,汉字点阵数据就是按照这个区位的顺序来存放的,也就是最先存放的是第一个区的汉字点阵数据,在每一个区中有是按照位的顺序来存放的.在汉字的内码中,汉字区位码的存放实在扩展 ASCII 基础上存放的,并且将区码和位码都加上了32,然后存放在两个扩展 ASCII 码中.具体的说就是:第一个扩展ASCII码 = 128+32 + 汉字区码第二个扩展ASCII吗 = 128+32 + 汉字位码如果用char hz[2]来表示一个汉字,那么我可以计算出这个汉字的区位码为:区码 = hz[0] - 128 - 32 = hz[0] - 160位码 = hz[1] - 128 - 32 = hz[1] - 160.这样,我们可以根据区位码在文件中进行殉职了,寻址公式如下:汉字点阵数据在字库文件中的偏移 = ((区码-1) * 94 + 位码) * 一个点阵字模占用的字节数在寻址以后,即可读取汉字的点阵数据到缓冲区进行显示了.以下是实现代码:/* 输出一个汉字的函数 */void _draw_hz(char hz[2], FILE *fp, int x, int y, int w, int h, int color){char f ON tbuf[128]; /* 足够大的缓冲区,也可以动态分配 */int ch0 = (BYTE)hz[0]-0xA0; /* 区码 */int ch1 = (BYTE)hz[1]-0xA0; /* 位码 *//* 计算偏移 */long offset = (long)pf->_hz_buf_size * ((ch0 - 1) * 94 + ch1 - 1);fseek(fp, offset, SEEK_SET); /* 进行寻址 */ fread(fontbuf, 1, (w + 7) / 8 * h, fp); /* 读入点阵数据 */ _draw_model(fontbuf, w, h, x, y, color); /* 绘制字模 */}以上介绍完了中文点阵字库的原理,当然还有英文点阵字库了.英文点阵字库中单个点阵字模数据的存放方式与中文是一模一样的,也就是对我们所写的 _draw_model 函数同样可以使用到英文字库中.唯一不同的是对点阵字库的寻址上.英文使用的就是 ASCII 码,其码值是0到127,寻址公式为:英文点阵数据在英文点阵字库中的偏移 = 英文的ASCII码 * 一个英文字模占用的字节数可以看到,区分中英文的关键就是,一个字符是 ASCII 码还是扩展 ASCII 码,如果是ASCII 码,其范围是0到127,这样是使用的英文字库,如果是扩展 ASCII 码,则与其后的另一个扩展 ASCII 码组成汉字内码,使用中文字库进行显示.只要正确区分 ASCII 码的类型并进行分别的处理,也就能实现中英文字符串的混合输出了.点阵字库和矢量字库的差别我们都只知道,各种字符在电脑屏幕上都是以一些点来表示的,因此也叫点阵.最早的字库就是直接把这些点存储起来,就是点阵字库.常见的汉字点阵字库有 16x16, 24x24 等.点阵字库也有很多种,主要区别在于其中存储编码的方式不同.点阵字库的最大缺点就是它是固定分辨率的,也就是每种字库都有固定的大小尺寸,在原始尺寸下使用,效果很好,但如果将其放大或缩小使用,效果就很糟糕了,就会出现我们通常说的锯齿现象.因为需要的字体大小组合有无数种,我们也不可能为每种大小都定义一个点阵字库.于是就出现了矢量字库.矢量字库矢量字库是把每个字符的笔划分解成各种直线和曲线,然后记下这些直线和曲线的参数,在显示的时候,再根据具体的尺寸大小,画出这些线条,就还原了原来的字符.它的好处就是可以随意放大缩小而不失真.而且所需存储量和字符大小无关.矢量字库有很多种,区别在于他们采用的不同数学模型来描述组成字符的线条.常见的矢量字库有 Type1字库和Truetype字库.在点阵字库中,每个字符由一个位图表示(如图2.5所示),并把它用一个称为字符掩膜的矩阵来表示,其中的每个元素都是一位二进制数,如果该位为1表示字符的笔画经过此位,该像素置为字符颜色;如果该位为0,表示字符的笔画不经过此位,该像素置为背景颜色.点阵字符的显示分为两步:首先从字库中将它的位图检索出来,然后将检索到的位图写到帧缓冲器中.在实际应用中,同一个字符有多种字体(如宋体、楷体等),每种字体又有多种大小型号,因此字库的存储空间十分庞大.为了减少存储空间,一般采用压缩技术.矢量字符记录字符的笔画信息而不是整个位图,具有存储空间小,美观、变换方便等优点.例如:在AutoCAD中使用图形实体-形(Shape)-来定义矢量字符,其中,采用了直线和圆弧作为基本的笔画来对矢量字符进行描述. 对于字符的旋转、放大、缩小等几何变换,点阵字符需要对其位图中的每个象素进行变换,而矢量字符则只需要对其几何图素进行变换就可以了,例如:对直线笔画的两个端点进行变换,对圆弧的起点、终点、半径和圆心进行变换等等.矢量字符的显示也分为两步.首先从字库中将它的字符信息.然后取出端点坐标,对其进行适当的几何变换,再根据各端点的标志显示出字符.轮廓字形法是当今国际上最流行的一种字符表示方法,其压缩比大,且能保证字符质量.轮廓字形法采用直线、B样条/Bezier曲线的集合来描述一个字符的轮廓线.轮廓线构成一个或若干个封闭的平面区域.轮廓线定义加上一些指示横宽、竖宽、基点、基线等等控制信息就构成了字符的压缩数据.如何使用Windows的系统字库生成点阵字库?我的程序现在只能预览一个汉字的不同字体的点阵表达.界面很简单: 一个输出点阵大小的选择列表(8x8,16x16,24x24等),一个系统中已有的字体名称列表,一个预览按钮,一块画图显示区域.得到字体列表的方法:(作者称这一段是用来取回系统的字体,然后添加到下拉框中) //取字体名称列表的回调函数,使用前要声明一下该方法int CALLBACK MyEnumF ON tProc(ENUMLOGFONTEX* lpelf,NEWTEXTMETRICEX* lpntm,DWORD nFontType,long lParam){CFontPeekerDlg* pWnd=(CFontPeekerDlg*) lParam;if(pWnd){if( pWnd->m_combo_sfont.Find ST ring(0, lpelf->elfLogFont.lfFaceName) <0 )pWnd->m_combo_sfont.AddString(lpelf->elfLogFont.lfFaceName);return 1;}return 0;}//说明:CFontPeekerDlg 是我的dialog的类名, m_combo_sfont是列表名称下拉combobox关联的control变量//调用的地方 (******问题1:下面那个&lf怎么得到呢……){::EnumFontFamiliesEx((HDC) dc,&lf, (FONTENUMPROC)MyEnumFontProc,(LPARAM) this,0);m_combo_sfont.SetCurSel(0);}字体预览:如果点阵大小选择16,显示的时候就画出16x16个方格.自定义一个类CMyStatic继承自CStatic,用来画图.在CMyStatic的OnPaint()函数中计算并显示.取得字体:常用的方法:用CreateFont创建字体,把字TextOut再用GetPixel()取点存入数组. 缺点:必须把字TextOut出来,能在屏幕上看见,不爽.我的方法,用这个函数:GetGlyphOutline(),可以得到一个字的轮廓矢量或者位图.可以不用textout到屏幕,直接取得字模信息函数原型如下:DWORD GetGlyphOutline(HDC hdc, //画图设备句柄UINT uChar, //将要读取的字符/汉字 UINT uFormat, //返回数据的格式(字的外形轮廓还是字的位图) LPGLYPHMETR ICS lpgm, // GLYPHMETRICS结构地址,输出参数DWORD cbBuffer, //输出数据缓冲区的大小LPVOID lpvBuffer, //输出数据缓冲区的地址CO NS T MAT2 *lpmat2 //转置矩阵的地址);说明:uChar字符需要判断是否是汉字还是英文字符.中文占2个字节长度.lpgm是输出函数,调用GetGlyphOutline()是无须给lpgm 赋值.lpmat2如果不需要转置,将 eM11.value=1; eM22.value=1; 即可.cbBuffer缓冲区的大小,可以先通过调用GetGlyphOutline(……lpgm, 0, NULL, mat); 来取得,然后动态分配lpvBuffer,再一次调用GetGlyphOutline,将信息存到lpvBuffer. 使用完毕后再释放lpvBuffer.程序示例:(***问题2:用这段程序,我获取的字符点阵总都是一样的,不管什么字……)……前面部分省略……GLYPHMETRICS glyph;MAT2 m2;memset(&m2, 0, sizeof(MAT2));m2.eM11.value = 1;m2.eM22.value = 1;//取得buffer的大小DWORD cbBuf = dc.GetGlyphOutline( nChar, GGO_BITMAP, &glyph,0L, NULL, &m2);BYTE* pBuf=NULL;//返回GDI_ERROR表示失败.if( cbBuf != GDI_ERROR ){pBuf = new BYTE[cbBuf];//输出位图GGO_BITMAP 的信息.输出信息4字节(DWORD)对齐dc.GetGlyphOutline( nChar, GGO_BITMAP, &glyph, cbBuf, pBuf, &m2);}else{if(m_pFont!=NULL)delete m_pFont;return;}编程中遇到问题:一开始,GetGlyphOutline总是返回-1,getLastError显示是"无法完成的功能",后来发现是因为调用之前没有给hdc设置Font.后来能取得pBuf信息后,又开始郁闷,因为不太明白bitmap的结果是按什么排列的.后来跟踪汉字"一"来调试(这个字简单),注意到了 glyph.gmBlackBoxX 其实就是输出位图的宽度,glyph.gmBlackBoxY就是高度.如果gmBlackBoxX=15,glyph.gmBlackBoxY=2,表示输出的pBuf中有这些信息:位图有2行信息,每一行使用15 bit来存储信息.例如:我读取"一":glyph.gmBlackBoxX = 0x0e,glyph.gmBlackBoxY=0x2; pBuf长度cbBuf=8 字节pBuf信息: 00 08 00 00 ff fc 00 00字符宽度 0x0e=14 则第一行信息为: 0000 0000 0000 100 (只取到前14位)第二行根据4字节对齐的规则,从0xff开始 1111 1111 1111 110看出"一"字了吗?呵呵直到他的存储之后就可以动手解析输出的信息了.我定义了一个宏#define BIT(n) (1<<(n)) 用来比较每一个位信息时使用后来又遇到了一个问题,就是小头和大头的问题了.在我的机器上是little endian的形式,如果我用unsigned long *lptr = (unsigned long*)pBuf;//j from 0 to 15if( *lptr & BIT(j) ){//这时候如果想用j来表示写1的位数,就错了}因为从字节数组中转化成unsigned long型的时候,数值已经经过转化了,像上例中,实际上是0x0800 在同BIT(j)比较.不多说了,比较之前转化一下就可以了if( htonl(*lptr) & BIT(j) )Unicode中文点阵字库的生成与使用点阵字库包含两部分信息.首先是点阵字库文件头信息,它包含点阵字库文字的字号、多少位表示一个像素,英文字母与符号的size、起始和结束 unicode编码、在文件中的起始偏移,汉字的size、起始和结束unicode编码、在文件中的起始偏移.然后是真实的点阵数据,即一段段二进制串,每一串表示一个字母、符号或汉字的点阵信息.要生成点阵字库必须有文字图形的来源,我的方法是使用ttf字体.ttf字体的显示采用的是SDL_ttf库,这是开源图形库SDL的一个扩展库,它使用的是libfreetype以读取和绘制ttf字体.它提供了一个函数,通过传入一个Unicode编码便能输出相应的文字的带有alpha 通道的位图.那么我们可以扫描这个位图以得到相应文字的点阵信息. 由于带有alpha通道,我们可以在点阵信息中也加入权值,使得点阵字库也有反走样效果.我采用两位来表示一个点,这样会有三级灰度(还有一个表示透明).点阵字库的显示首先需要将文件头信息读取出来,然后根据unicode编码判断在哪个区间内,然后用unicode编码减去此区间的起始unicode编码,算出相对偏移,并加上此区间的文件起始偏移得到文件的绝对偏移,然后读出相应位数的数据,最后通过扫描这段二进制串,在屏幕的相应位置输出点阵字型.显示点阵字体需要频繁读取文件,因此最好做一个固定大小的缓存,采用LRU置换算法维护此缓存,以减少磁盘读取.。
点阵码和矢量码
摘要:
一、点阵码和矢量码的定义与特点
1.点阵码的概念
2.矢量码的概念
3.点阵码与矢量码的特点对比
二、点阵码和矢量码的应用领域
1.点阵码的应用领域
2.矢量码的应用领域
三、点阵码和矢量码的发展趋势
1.点阵码的发展趋势
2.矢量码的发展趋势
四、总结
正文:
点阵码和矢量码是图像编码领域的两种主要技术,它们在图像处理、传输和存储等方面有着广泛的应用。
点阵码,又称位图编码,是一种将图像分解为像素点进行编码的方法。
每个像素点的颜色和亮度信息都用二进制位表示,因此这种编码方式也被称为位图编码。
点阵码的优点是编码简单、图像质量高,但缺点是存储和传输成本较高。
矢量码,又称向量编码,是一种将图像表示为数学公式或向量的方式进行
编码的方法。
在矢量码中,图像的每个特征点都由一个坐标和一个颜色值组成,因此矢量码也被称为向量编码。
矢量码的优点是存储和传输成本低,但缺点是编码复杂,对图像质量有一定影响。
点阵码和矢量码各自适用于不同的应用场景。
例如,在需要高质量图像的场合,如专业图像处理、广告设计等,点阵码是更好的选择。
而在需要低存储和传输成本的场合,如网页图片、视频压缩等,矢量码则具有明显优势。
随着图像处理技术的不断发展,点阵码和矢量码都在不断地优化和改进。
例如,点阵码方面,有研究者提出了高压缩比的JPEG和JPEG2000等编码方法;矢量码方面,有研究者提出了基于人工智能的图像简化方法,以提高图像的压缩效果。
总之,点阵码和矢量码在图像编码领域各有优势,针对不同的应用场景可以选择合适的编码方法。
矢量控制技术矢量控制技术是一种基于数学算法的图形处理技术,它能够将图形对象转化为数学上的向量形式,并通过对向量的控制实现对图形的精细化操作。
矢量控制技术广泛应用于计算机图形学、动画制作、广告设计、工业设计等领域,成为了数字化时代中不可或缺的一部分。
一、矢量控制技术的基本原理1. 点、线和面在矢量控制技术中,点、线和面是最基本的图形元素。
点是二维空间中最简单的元素,用一个坐标来表示;线由两个点连接而成;面则由多个线段组成。
2. 点阵与矢量点阵和矢量是两种不同的表示图像方式。
点阵是将图像分割成一个个像素点来表示,每个像素点有自己的颜色值;而矢量则是将图像表示为若干个数学对象(如直线、曲线等),通过对这些对象进行变换来实现对图像的操作。
3. 坐标系在矢量控制技术中,坐标系用来描述二维或三维空间中各个点的位置。
常见的坐标系有笛卡尔坐标系、极坐标系等。
4. 矢量运算矢量控制技术中,常见的矢量运算包括平移、旋转、缩放等。
这些运算可以通过对矢量的坐标进行变换来实现。
二、矢量控制技术的应用领域1. 计算机图形学计算机图形学是矢量控制技术最主要的应用领域之一。
在计算机图形学中,矢量控制技术被广泛应用于三维建模、渲染、动画制作等方面。
2. 广告设计广告设计中,常常需要使用矢量控制技术来创建各种复杂的标志和图案。
通过对矢量对象进行变换和组合,可以创建出各种形态各异的图案。
3. 工业设计在工业设计中,矢量控制技术可以用来创建产品模型和原型。
通过对产品模型进行变换和操作,可以快速地生成多个不同版本的产品原型。
4. 印刷设计印刷设计中,矢量控制技术被广泛应用于文本排版和色彩管理方面。
通过使用矢量对象来表示文本和图形,可以保证印刷品的清晰度和质量。
三、矢量控制技术的发展趋势1. 三维矢量控制技术随着计算机图形学的发展,矢量控制技术也在不断地向三维方向拓展。
未来,三维矢量控制技术将成为计算机图形学中的重要组成部分。
2. 自动化矢量控制技术自动化矢量控制技术是一种新型的矢量控制技术,它可以通过机器学习和人工智能等方法来实现对矢量对象的自动化操作。
点阵图像
点阵图像是一种由像素点组成的图像表示方法。
每个像素点都是由一定位置、
颜色、亮度等属性的小点构成的,通过这些点的组合形成图像。
起源和发展
点阵图像最早可以追溯到打孔卡片时代。
在计算机科学发展的初期,人们利用
打孔卡片进行数据编码和传输。
这种方式本质上也是一种类似点阵的编码方式。
随着计算机技术的发展,点阵图像逐渐进入了我们的视野。
点阵图像与矢量图像的区别
点阵图像与矢量图像是两种常见的图像表示方式。
点阵图像是由像素点组成的,每个像素点都拥有自己的属性,如颜色、位置等。
而矢量图像则是由线段和曲线等几何形状描述的图像。
点阵图像在放大时会出现锯齿状,而矢量图像则可以实现平滑的无损放大。
应用领域
点阵图像在现代社会中有着广泛的应用。
从电子设备的显示屏到打印机的输出,几乎所有现代设备都是以点阵图像作为基础来显示图像的。
在数字摄影领域,点阵图像也是最广泛应用的图像格式之一。
点阵图像处理技术
随着科技的不断发展,人们创造了各种各样的点阵图像处理技术。
比如,图像
压缩技术可以将点阵图像压缩到更小的尺寸,从而节省存储空间。
图像增强技术可以改善图像的质量,使图像更加清晰、鲜明。
图像分割技术可以帮助人们更好地识别图像中的目标物体。
结语
点阵图像作为一种图像表示方式,已经深深地融入了我们的生活。
无论是在数
字设备的显示屏上,还是在打印品中,点阵图像都扮演着重要的角色。
随着科技的不断进步,点阵图像处理技术也将不断发展和完善,为我们的生活带来更多的便利和美好。