C++中无法打开BMP文件
我在学OpenGL的时候碰到这么一个问题,就是无法用C++打开一个BMP格式的图片。具体代码如下:LoadBMP("D:\C#ProjectSource\OpenGL\L...
我在学OpenGL的时候碰到这么一个问题,
就是无法用C++打开一个BMP格式的图片。
具体代码如下:
LoadBMP("D:\C#ProjectSource\OpenGL\Lesson1\Lesson1\Images\NeHe.bmp")
AUX_RGBImageRec *LoadBMP(char *Filename)
{
FILE *File = NULL;
if(!Filename)
return NULL;
File = fopen(Filename,"r");
if(File)
{
fclose(File);
return auxDIBImageLoad(Filename);
}
return NULL;
}
我往LoadBMP这个函数中传入如上地址,
但是它跑到if(File)这句时直接就跳过去了,说明这个文件没有打开。
不知道是什么问题。
代码我抄的是源代码,只是把文件的路径改了,难道是这个路径的问题??
因为我的电脑是日文系统的,所以输入地址时/会变成¥,导致图片读不出来。
然后跑到auxDIBImageLoad()这个方法时,报了一个错说是unknown dib file format。
上网查了一下,原来是bmp的位数不对。
原图是网上下下来的,说是BMP,其实是32位的。
所以又重新以bmp格式保存之后再读取就没有问题了。 展开
就是无法用C++打开一个BMP格式的图片。
具体代码如下:
LoadBMP("D:\C#ProjectSource\OpenGL\Lesson1\Lesson1\Images\NeHe.bmp")
AUX_RGBImageRec *LoadBMP(char *Filename)
{
FILE *File = NULL;
if(!Filename)
return NULL;
File = fopen(Filename,"r");
if(File)
{
fclose(File);
return auxDIBImageLoad(Filename);
}
return NULL;
}
我往LoadBMP这个函数中传入如上地址,
但是它跑到if(File)这句时直接就跳过去了,说明这个文件没有打开。
不知道是什么问题。
代码我抄的是源代码,只是把文件的路径改了,难道是这个路径的问题??
因为我的电脑是日文系统的,所以输入地址时/会变成¥,导致图片读不出来。
然后跑到auxDIBImageLoad()这个方法时,报了一个错说是unknown dib file format。
上网查了一下,原来是bmp的位数不对。
原图是网上下下来的,说是BMP,其实是32位的。
所以又重新以bmp格式保存之后再读取就没有问题了。 展开
1个回答
2013-03-30
展开全部
你那字符串,反斜杠要写成"\\"的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询