最近在用DevIL这个库处理
图像,
编译通过,运行的时候,刚开始挺正常的,过了一段时间
出错了。
问题出在ilLoadImage(imagepath);这个函数上,函数返回值为FALSE。
图片路径和图片本身是没问题的,而且这个函数针对前面的很多幅图像运行也是正确的,我就搞不懂它为什么会又不正确了。请大家看看。
附上一些代码,供大家参考
- static int devil_loaded = 0;
- unsigned int imID;
- int done = 1;
- if(devil_loaded == 0)
- {
- ilInit();
- ilOriginFunc(IL_ORIGIN_UPPER_LEFT);
- ilEnable(IL_ORIGIN_SET);
- devil_loaded = 1;
- }
- ///
- ilGenImages(1, &imID);
- ilBindImage(imID);
- if(ilLoadImage(imagepath))
- {
- w = ilGetInteger(IL_IMAGE_WIDTH);
- h = ilGetInteger(IL_IMAGE_HEIGHT);
- int ilformat = ilGetInteger(IL_IMAGE_FORMAT);
- if(SetImageData(w, h, ilGetData(), ilformat, GL_UNSIGNED_BYTE)==0)
- {
- done =0;
- }else if(GlobalUtil::_verbose)
- {
- std::cout<<"Image loaded :\t"<<imagepath<<"\n";
- }
- }else
- {
- std::cerr<<"Unable to open image [code = "<<ilGetError()<<"]\n";
- done = 0;
- }
- ilDeleteImages(1, &imID);
由于ilLoadImage函数出错,程序输出“
Unable to open image code = 1506”,查阅
资料得知这对应IL_LIB_JPEG_ERROR,好像和jpeg库有关,到这里我就束手无策了,希望懂的人给点意见