图像、位图和图元文件

上传人:woxinch****an2018 文档编号:39310076 上传时间:2018-05-14 格式:DOC 页数:9 大小:229KB
返回 下载 相关 举报
图像、位图和图元文件_第1页
第1页 / 共9页
图像、位图和图元文件_第2页
第2页 / 共9页
图像、位图和图元文件_第3页
第3页 / 共9页
图像、位图和图元文件_第4页
第4页 / 共9页
图像、位图和图元文件_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《图像、位图和图元文件》由会员分享,可在线阅读,更多相关《图像、位图和图元文件(9页珍藏版)》请在金锄头文库上搜索。

1、图像、位图和图元文件.NET.NET FrameworkFramework 4.54.5 其他版本ImageImage 类是抽象基类,它提供了处理光栅图像(位图)和矢量图像(图元文件)的方法。BitmapBitmap 类和 Metafile 类都继承自 ImageImage 类。 BitmapBitmap 类提供了用于加载、保存和处理光栅图像的更多方法,因而扩展了 ImageImage 类的功能。 Metafile 类提供了用于记录和检查矢量图像的更多方法,因而扩展了 ImageImage 类的功能。 本节内容位图类型讨论各种图像格式。GDI+ 中的图元文件讨论对图元文件的 GDI+ 支持。在

2、 GDI+ 中绘制、定位和克隆图像讨论用托管代码绘制矢量图像和光栅图像的方法。在 GDI+ 中裁切和缩放图像讨论用托管代码对矢量图像和光栅图像进行裁剪和缩放的方法 参考Image 描述此类并提供指向其所有成员的链接。Bitmap 描述此类并提供指向其所有成员的链接 位图类型.NET Framework 4.5其他版本位图是位的数组,它指定了像素矩阵中各像素的颜色。 专用于单个像素的位数决定了可分配到该像素的颜色数。 例如,如果用 4 位来呈现每个像素,那么一个给定的像素就可以分配到 16 (24 = 16) 种颜色中的一种。 下表中的几个示例显示了可分配到由给定位数代表的像素的颜色数量。每像素

3、的位数每像素的位数一个像素可分配到的颜色数量一个像素可分配到的颜色数量121 = 2222 = 4424 = 16828 = 25616216 = 65,53624224 = 16,777,216存储位图的磁盘文件通常包含一个或多个信息块,信息块中存储了如每像素位数、每行的像素数以及数组中的行数等信息。 这样一个文件也可能包含颜色表(有时称为调色板)。 颜色表将位图中的数值映射到特定的颜色。 下面的插图显示了一幅放大的图像以及它的位图和颜色表。每个像素用一个 4 位数表示,那么颜色表中有 24 = 16 种颜色。 表中的每种颜色用一个 24 位数表示:8 位用于红色,8 位用于绿色,8 位用于

4、蓝色。 数字以十六进制(基 16)形式显示:A = 10,B = 11,C = 12,D = 13,E = 14,F = 15。请看位于该图像第 3 行、第 5 列的像素。 位图中对应的数字为 1。 颜色表告诉我们 1 表示红色,因此该像素是红色的。 该位图最上面一行中所有的项都是 3。 颜色表告知我们 3 表示蓝色,因此该图像最上面一行中的所有像素都是蓝色。说明说明一些位图是以上下颠倒的格式存储的;位图首行中的数值对应于图像末行中 的像素。在颜色表中存储索引的位图称为“调色板索引位图”。 有些位图不需要颜色表。 例如,如果位图使用每像素 24 位的格式,那么该位图就可以将颜色本身(而不是索引

5、)存储到颜色表中。下面的插图显示了一个直接存储颜色(24 位/像素)而不使用颜色表的位图。 该插图也显示了相应图像的放大视图。 在位图中,FFFFFF 表示白色,FF0000 表示红色,00FF00 表示绿色,0000FF 表示蓝色。图形文件格式有许多将位图存储到磁盘文件的标准格式。 GDI+ 支持下面段落中所描述的图形文件格式。 BMP BMP 是 Windows 使用的一种标准格式,用于存储设备无关和应用程序无关的图像。 一个给定 BMP 文件的每像素位数值(1、4、8、15、24、32 或 64)在文件头中指定。 每像素 24 位的 BMP 文件是通用的。 BMP 文件通常是不压缩的,因

6、此,不太适合通过 Internet 传输。可交换图像文件格式 (GIF)GIF 是一种用于在网页中显示图像的通用格式。 GIF 文件适用于画线、有纯色块的图片和在颜色之间有清晰边界的图片。 GIF 文件是压缩的,但是在压缩过程中没有信息丢失;解压缩的图像与原始图像完全一样。 GIF 文件中的一种颜色可以被指定为透明,这样,图像将具有显示它的任何网页的背景色。 在单个文件中存储一系列 GIF 图像可以形成一个动画 GIF。 GIF 文件每像素最多能存储 8 位,所以它们只限于使用 256 种颜色。联合摄影专家组 (JPEG)JPEG 是一种适应于自然景观(如扫描的照片)的压缩方案。 一些信息会在

7、压缩过程中丢失,但是这些丢失人眼是察觉不到的。 JPEG 文件每像素存储 24 位,因此它们能够显示超过 16,000,000 种颜色。 JPEG 文件不支持透明或动画。JPEG 图像中的压缩级别是可以控制的,但是较高的压缩级别(较小的文件)会导致丢失更多的信息。 对于一幅以 20:1 压缩比生成的图像,人眼难以把它和原始图像区别开来。 下面的插图显示了一幅 BMP 图像和用这幅 BMP 图像压缩而得的两幅 JPEG 图像。 第一幅 JPEG 的压缩比是 4:1,第二幅 JPEG 的压缩比是 8:1。JPEG 压缩不适用于线条图形、纯色块和清晰边界。 下面的插图显示了一幅 BMP 图像,以及两

8、幅 JPEG 图像和一幅 GIF 图像。 JPEG 和 GIF 图像从 BMP 图像压缩而得。 GIF 的压缩比是 4:1,较小 JPEG 的压缩比是 4:1,较大 JPEG 的压缩比是 8:3。 请注意,GIF 图像沿线条保持着清晰的边界,而 JPEG 图像则趋向于模糊边界。JPEG 是一种压缩方案,不是一种文件格式。 “JPEG 文件交换格式 (JFIF)”是一种文件格式,常用于存储和传输已根据 JPEG 方案压缩的图像。 Web 浏览器显示的 JFIF 文件使用 .jpg 扩展名。可交换图像文件 (EXIF)EXIF 是一种适用于数码相机拍摄的照片的文件格式。 EXIF 文件中含有根据

9、JPEG 规格压缩的图像。 EXIF 文件中还包含了有关照片的信息(拍摄日期、快门速度、曝光时间,等等)和相机信息(制造商、型号,等等)。可迁移网络图形 (PNG)PNG 格式不但保留了许多 GIF 格式的优点,还提供了超出 GIF 的功能。 像 GIF 文件一样,PNG 文件在压缩时也不损失信息。 PNG 文件能以每像素 8、24 或 48 位来存储颜色,并以每像素 1、2、4、8 或 16 位来存储灰度。 相比之下,GIF 文件只能使用每像素 1、2、4 或 8 位。 PNG 文件还可为每个像素存储一个 alpha 值,该值指定了该像素颜色与背景颜色混合的程度。PNG 优于 GIF 之处在

10、于,它能渐进地显示一幅图像(也就是说,在图像通过网络连接传递的过程中,显示的图像将越来越完整)。 PNG 文件可包含灰度校正和颜色校正信息,以便图像可在各种各样的显示设备上精确地呈现。标签图像文件格式 (TIFF)TIFF 是一种灵活的和可扩展的格式,各种各样的平台和图像处理应用程序都支持这种格式。TIFF 文件能以每像素任意位来存储图像,并可以使用各种各样的压缩算法。 单个的多页 TIFF 文件可以存储数幅图像。 可以把与图像相关的信息(扫描仪制造商、主机、压缩类型、打印方向和每像素采样,等等)存储在文件中并使用标签来排列这些信息。 可以根据需要通过批准和添加新标签来扩展 TIFF 格式。

11、GDI+ 中的图元文件.NET.NET FrameworkFramework 4.54.5 其他版本GDI+ 提供 Metafile 类,以便能够记录和显示图元文件。 图元文件,也称为矢量图像,是一种存储为一系列绘图命令和设置的图像。 Metafile 对象记录的命令和设置可存储在内存中,或者保存到文件或流。 图元文件格式GDI+ 能够显示以以下格式存储的图元文件:Windows 图元文件 (WMF)增强性图元文件 (EMF)EMF+ GDI+ 能够用 EMF 和 EMF+ 格式记录图元文件,但不能使用 WMF 格式。EMF+ 是对 EMF 的扩展,可存储 GDI+ 记录。 EMF+ 格式有两

12、种变体:“EMF+ 唯一”和“EMF+ 双重”。 “EMF+ 唯一”图元文件只包含 GDI+ 记录。 此类图元文件可以由 GDI+ 显示,但不能由 GDI 显示。 “EMF+ 双重”图元文件包含 GDI+ 和 GDI 记录。 “EMF+ 双重”图元文件中的每个 GDI+ 记录与一个备用的 GDI 记录成对使用。 此类图元文件可以由 GDI+ 或 GDI 显示。下面的示例显示了一个以前另存为文件的图元文件。 该图元文件在显示时,左上角的位置是 (100,100)。C#C#VBPublic Sub Example_DisplayMetafile(ByVal e As PaintEventArgs)

13、Dim myGraphics As Graphics = e.GraphicsDim myMetafile As New Metafile(“SampleMetafile.emf“)myGraphics.DrawImage(myMetafile, 100, 100)End Sub 在 GDI+ 中绘制、定位和克 隆图像.NET.NET FrameworkFramework 4.54.5 其他版本可以使用 Bitmap 类加载和显示光栅图像,还可利用 Metafile 类加载和显示矢量图像。Bitmap 类和 Metafile 类从 Image 类继承。 若要显示矢量图像,需要 Graphics

14、 类的实例和 Metafile。 若要显示光栅图像,则需要 Graphics 类的实例和 Bitmap。 Graphics 类的实例提供了 DrawImage 方法,该方法接收 Metafile 或 Bitmap 作为参数。 文件类型和克隆下面的代码示例演示如何用文件 Climber.jpg 构造 Bitmap,并显示位图。 图像左上角的目标点 (10,10) 在第二个和第三个参数中指定。C#C#VBDim myBitmap As New Bitmap(“Climber.jpg“)myGraphics.DrawImage(myBitmap, 10, 10)下面的插图显示了该图像。可以用各种图形

15、文件格式(BMP、GIF、JPEG、EXIF、PNG、TIFF 和 ICON)构造 Bitmap 对象。下面的代码示例演示如何使用各种文件类型构造 Bitmap 对象,并显示位图。C#C#VBDim myBMP As New Bitmap(“SpaceCadet.bmp“)Dim myGIF As New Bitmap(“Soda.gif“)Dim myJPEG As New Bitmap(“Mango.jpg“)Dim myPNG As New Bitmap(“Flowers.png“)Dim myTIFF As New Bitmap(“MS.tif“)myGraphics.DrawImag

16、e(myBMP, 10, 10)myGraphics.DrawImage(myGIF, 220, 10)myGraphics.DrawImage(myJPEG, 280, 10)myGraphics.DrawImage(myPNG, 150, 200)myGraphics.DrawImage(myTIFF, 300, 200)Bitmap 类提供了 Clone 方法,可用于制作现有 Bitmap 的副本。 Clone 方法带有源矩形参数,可用于指定要复制的原始位图的部分。 下面的代码示例演示如何利用克隆现有 Bitmap 的上半部创建 Bitmap。 然后绘制两幅图像。C#C#VBDim originalBitmap As New Bitmap(“Spiral.png“)Dim sourceRectangle As New Rectangle(0, 0, originalBitmap.Width, _CType(originalBitmap.Height / 2, Integer)Dim secondBitmap As Bitmap = orig

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号