怎样在OpenGL程序中读取Jpg图象文件作为文理?
我只会读取bmp图片作为文理,可是Bmp图片实在太大了,而且从网上下载下来的绝大多数是jpg文件,要是能够读取jpg就好了.
下面是一段读取Bmp文件的程序,希望谁能帮我写一段读jpg文件的过程:
int ReadJpg24(char* filename,char *image24,int *width2,int *length2,int ALPHAFLAG)小弟定感激不尽
int ReadBitmap24(char* filename,char *image24,int *width2,int *length2,int ALPHAFLAG)
{ char *image;
FILE *fp;
if(fp=fopen(filename,"r"))
{ int width,length;
fseek(fp,18L,0);
fread(&width,4,1,fp);*width2=width;
//fseek(fp,22L,0);
fread(&length,4,1,fp);*length2=length;
image=new char[width*length*3];
fseek(fp,54L,0);
fread(image,1,width*length*3,fp);
fclose(fp);
//DibFile.Close();
long a;
if(ALPHAFLAG)
{ for(a=0;a<width*length;a++)
{ //DibFile.Read((LPVOID)Image[i],(UINT)128*128*3);
image24[4*a]=(GLubyte)image[a*3+2]; // R
image24[4*a+1]=(GLubyte)image[a*3+1]; // G
image24[4*a+2]=(GLubyte)image[a*3];
if(image[a*3+2]==0&&image[a*3+1]==0&&image[a*3]==0)image24[4*a+3]=0;
else image24[4*a+3]=(GLubyte)255;
//image24[4*a+3]=(GLubyte)255;
//image24[4*a+3]=(image24[4*a]<image24[4*a+1])?image24[4*a]:image24[4*a+1];
//if(image24[4*a+3]>image24[4*a+2])image24[4*a+3]=image24[4*a+2];
}
}else
for(a=0;a<width*length;a++)
{ image24[3*a]=image[a*3]; // R
image24[3*a+1]=image[a*3+1]; // G
image24[3*a+2]=image[a*3+2];
}
delete image;
return(1);
}else return(0);
}