资源简介
OpenGL编程精粹源代码
代码片段和文件信息
//======================================================================
/**
* @file CBMPLoader.cpp
*
* 项目描述: OpenGL混合
* 文件描述: 载入位图类
* 适用平台: Windows98/2000/NT/XP
*
* 作者: BrightXu
* 电子邮件: huoxini@hotmail.com
* 创建日期: 2006-11-23
* 修改日期: 2006-11-28
*
*/
//======================================================================
#include“CBMPLoader.h“ /**< 包含头文件 */
/** 构造函数 */
CBMPLoader::CBMPLoader()
{
/** 初始化成员值为0 */
image = 0;
imageWidth = 0;
imageHeight = 0;
}
/** 析构函数 */
CBMPLoader::~CBMPLoader()
{
FreeImage(); /**< 释放图像数据占据的内存 */
}
/** 装载一个位图文件 */
bool CBMPLoader::LoadBitmap(char *file)
{
FILE *pFile = 0; /**< 文件指针 */
/** 创建位图文件信息和位图文件头结构 */
BITMAPINFOHEADER bitmapInfoHeader;
BITMAPFILEHEADER header;
unsigned char textureColors = 0;/**< 用于将图像颜色从BGR变换到RGB */
/** 打开文件并检查错误 */
pFile = fopen(file “rb“);
if(pFile == 0) return false;
/** 读入位图文件头信息 */
fread(&header sizeof(BITMAPFILEHEADER) 1 pFile);
/** 检查该文件是否为位图文件 */
if(header.bfType != BITMAP_ID)
{
fclose(pFile); /**< 若不是位图文件则关闭文件并返回 */
return false;
}
/** 读入位图文件信息 */
fread(&bitmapInfoHeader sizeof(BITMAPINFOHEADER) 1 pFile);
/** 保存图像的宽度和高度 */
imageWidth = bitmapInfoHeader.biWidth;
imageHeight = bitmapInfoHeader.biHeight;
/** 确保读取数据的大小 */
if(bitmapInfoHeader.biSizeImage == 0)
bitmapInfoHeader.biSizeImage = bitmapInfoHeader.biWidth *
bitmapInfoHeader.biHeight * 3;
/** 将指针移到数据开始位置 */
fseek(pFile header.bfOffBits SEEK_SET);
/** 分配内存 */
image = new unsigned char[bitmapInfoHeader.biSizeImage];
/** 检查内存分配是否成功 */
if(!image) /**< 若分配内存失败则返回 */
{
delete[] image;
fclose(pFile);
return false;
}
/** 读取图像数据 */
fread(image 1 bitmapInfoHeader.biSizeImage pFile);
/** 将图像颜色数据格式进行交换由BGR转换为RGB */
for(int index = 0; index < (int)bitmapInfoHeader.biSizeImage; index+=3)
{
textureColors = image[index];
image[index] = image[index + 2];
image[index + 2] = textureColors;
}
fclose(pFile); /**< 关闭文件 */
return true; /**< 成功返回 */
}
/** 释放内存 */
void CBMPLoader::FreeImage()
{
/** 释放分配的内存 */
if(image)
{
delete[] image;
image = 0;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-05-08 13:24 OpenGL实例编程精粹\
目录 0 2011-05-08 13:19 OpenGL实例编程精粹\第10章\
目录 0 2011-05-08 13:40 OpenGL实例编程精粹\第10章\Blend\
文件 152516 2010-07-12 13:53 OpenGL实例编程精粹\第10章\Blend\bak.bmp
文件 241664 2010-07-13 09:24 OpenGL实例编程精粹\第10章\Blend\Blend.exe
文件 3347 2006-11-08 21:13 OpenGL实例编程精粹\第10章\Blend\Blend.rc
文件 870 2010-07-13 09:23 OpenGL实例编程精粹\第10章\Blend\Blend.sln
文件 8704 2010-07-13 09:25 OpenGL实例编程精粹\第10章\Blend\Blend.suo
文件 8704 2006-11-29 22:01 OpenGL实例编程精粹\第10章\Blend\Blend.suo.old
文件 4917 2010-07-13 09:23 OpenGL实例编程精粹\第10章\Blend\Blend.vcproj
文件 2649 2006-11-28 21:39 OpenGL实例编程精粹\第10章\Blend\CBMPLoader.cpp
文件 1131 2006-11-28 21:39 OpenGL实例编程精粹\第10章\Blend\CBMPLoader.h
文件 9 2007-03-10 08:49 OpenGL实例编程精粹\第10章\Blend\Desktop_.ini
文件 7293 2006-11-29 21:28 OpenGL实例编程精粹\第10章\Blend\Example.cpp
文件 1998 2006-11-28 21:59 OpenGL实例编程精粹\第10章\Blend\Example.h
文件 10694 2006-11-29 21:28 OpenGL实例编程精粹\第10章\Blend\GLfr
文件 3778 2006-11-28 21:39 OpenGL实例编程精粹\第10章\Blend\GLfr
文件 9530 2006-11-28 21:35 OpenGL实例编程精粹\第10章\Blend\GLWindow.cpp
文件 2621 2006-11-28 21:39 OpenGL实例编程精粹\第10章\Blend\GLWindow.h
文件 193590 2006-11-26 21:30 OpenGL实例编程精粹\第10章\Blend\image.bmp
文件 910 2006-11-08 21:00 OpenGL实例编程精粹\第10章\Blend\resource.h
文件 2872 2006-11-28 21:39 OpenGL实例编程精粹\第10章\Blend\ScreenDlg.cpp
文件 922 2006-11-28 21:39 OpenGL实例编程精粹\第10章\Blend\ScreenDlg.h
目录 0 2011-05-08 13:19 OpenGL实例编程精粹\第11章\
目录 0 2011-05-08 13:40 OpenGL实例编程精粹\第11章\Antialiasing1\
文件 236544 2010-07-13 09:24 OpenGL实例编程精粹\第11章\Antialiasing1\Antialiasing1.exe
文件 3347 2006-11-08 21:13 OpenGL实例编程精粹\第11章\Antialiasing1\Antialiasing1.rc
文件 886 2010-07-13 09:24 OpenGL实例编程精粹\第11章\Antialiasing1\Antialiasing1.sln
文件 8704 2010-07-13 09:25 OpenGL实例编程精粹\第11章\Antialiasing1\Antialiasing1.suo
文件 7680 2006-12-01 19:14 OpenGL实例编程精粹\第11章\Antialiasing1\Antialiasing1.suo.old
文件 4827 2010-07-13 09:24 OpenGL实例编程精粹\第11章\Antialiasing1\Antialiasing1.vcproj
............此处省略881个文件信息
相关资源
- NeHe_OpenGL_VC版本1-48课全部教程以及源
- 计算机图形学实验OpenGL
- opengl 视频纹理处理
- OpenGL物理碰撞效果
- OpenGL小游戏
- OpenGL超级宝典第五版pdf及其随书源码
- OpenGL读取bunny文件+斯坦福兔子
- OpenGL开发的教室场景可以漫游
- OpenGL高级编程与可视化系统开发-系统
- opengl读取.obj三维模型,arcball实现鼠标
- OpenGL超级宝典 第5版 中文版 完整书签
- Computer Graphics with OpenGL 4th edition 高清
- OpenGL 4.0 Shading Language Cookbook及完整源
- Computer_Graphics_with_OpenGL_4th_ed.pdf
- opengl读入obj文件并实现平移旋转贴图
- OGL模型加载
- OPENGL 经典案例 整套
- opengl包含16个鼠标控制点的Bezier曲面
- qt下opengl的三维视角转换算法
- OpenGL鱼眼镜头特效的视频播放器 基于
- opengl实现bezier曲面的纹理贴图、鼠标
- assimp.dll
- OpenGL SDK
- OpenGL读取点云文件并绘制
- 计算机图形学大作业
- OpenCV与OpenGL实现增强现实
- 3d opengl 飞行射击游戏源码和论文
- 20个可读的obj模型文件
- opengl实现模型读取以及光照,移动等
- Opengl实现旗帜飘扬效果
评论
共有 条评论