电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

OpenGL入门学习之十——BMP文件与像素操作VIP免费

OpenGL入门学习之十——BMP文件与像素操作_第1页
1/9
OpenGL入门学习之十——BMP文件与像素操作_第2页
2/9
OpenGL入门学习之十——BMP文件与像素操作_第3页
3/9
OpenGL 入门学习之十——BMP 文件与像素操作2009-01-07 12:03学过多媒体技术的朋友可能知道,计算机保存图象的方法通常有两种:一是“矢量图”,一是“像素图”。矢量图保存了图象中每一几何物体的位置、形状、大小等信息,在显示图象时,根据这些信息计算得到完整的图象。“像素图”是将完整的图象纵横分为若干的行、列,这些行列使得图象被分割为很细小的分块,每一分块称为像素,保存每一像素的颜色也就保存了整个图象。这两种方法各有优缺点。“矢量图”在图象进行放大、缩小时很方便,不会失真,但如果图象很复杂,那么就需要用非常多的几何体,数据量和运算量都很庞大。“像素图”无论图象多么复杂,数据量和运算量都不会增加,但在进行放大、缩小等操作时,会产生失真的情况。前面我们曾介绍了如何使用 OpenGL 来绘制几何体,我们通过重复的绘制许多几何体,可以绘制出一幅矢量图。那么,应该如何绘制像素图呢?这就是我们今天要学习的内容了。1、BMP 文件格式简单介绍BMP 文件是一种像素文件,它保存了一幅图象中所有的像素。这种文件格式可以保存单色位图、16 色或 256 色索引模式像素图、24 位真彩色图象,每种模式种单一像素的大小分别为 1/8 字节,1/2 字节,1 字节和 3 字节。目前最常见的是 256 色 BMP 和 24 位色 BMP。这种文件格式还定义了像素保存的几种方法,包括不压缩、RLE 压缩等。常见的 BMP 文件大多是不压缩的。这里为了简单起见,我们仅讨论 24 位色、不使用压缩的 BMP。(如果你使用 Windows 自带的画图程序,很容易绘制出一个符合以上要求的 BMP)Windows 所使用的 BMP 文件,在开始处有一个文件头,大小为 54 字节。保存了包括文件格式标识、颜色数、图象大小、压缩方式等信息,因为我们仅讨论 24 位色不压缩的 BMP,所以文件头中的信息基本不需要注意,只有“大小”这一项对我们比较有用。图象的宽度和高度都是一个 32 位整数,在文件中的地址分别为 0x0012 和 0x0016,于是我们可以使用以下代码来读取图象的大小信息:GLint width, height; // 使用 OpenGL 的 GLint 类型,它是 32 位的。 // 而 C 语言本身的 int 则不一定是 32 位的。FILE* pFile;// 在这里进行“打开文件”的操作fseek(pFile, 0x0012, SEEK_SET); // 移动到 0x0012 位置fread(&width, sizeof(width), 1, pFile); // 读取宽度fseek(pFile, 0x0016, SEEK_SET); //...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

OpenGL入门学习之十——BMP文件与像素操作

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部