1.readImage.C函数的修改结果如下:
#include <stdio.h>
#include<gl/GLUT.H>
GLubyte*
readImage( const char* filename, GLsizei* width, GLsizei *height )
{
int n;
GLubyte* pixels;
FILE* infile = fopen( filename, "rb" );
if ( !infile ) {
fprintf( stderr, "Unable to open file '%s'\n", filename );
return NULL;
}
/*fread( &byHeightLow, sizeof( BYTE ), 1, infile );
fread( &byHeightHi, sizeof( BYTE ), 1, infile );*/// 去除这两行,而是用下面两行取代
*width = 599;
*height = 401;
n = 3 * (*width) * (*height);
pixels = (GLubyte *) malloc( n * sizeof( GLubyte ));
if ( !pixels ) {
fprintf( stderr, "Unable to malloc() bytes for pixels\n" );
return NULL;
}
fread( pixels, sizeof( GLubyte ), n, infile );
fclose( infile );
return pixels;
}
2.convolution.c、colorTable.c等c文件的修改如下:
1.因为图像处理子集是拓展库glew实现的,所以:
- 加入glew.h头文件
- 加入glew32.lib库文件.有两种方式,从项目属性中,link配置处添加或者在程序中添加 #pragma comment(lib,"glew32.lib")
- 在第一次调用glew中的函数之前,例如glcolorTable之前(一般在init函数中),要初始化glew库。初始化方法为增加代码 glewInit();直接在glcolorTable前一句代码添加此代码,否则还是有可能出错,原因不详。