• 4317阅读
  • 2回复

[提问]有没有人用过DevIL这个库的? [复制链接]

上一主题 下一主题
离线wjz2047
 

只看楼主 倒序阅读 楼主  发表于: 2014-05-06
最近在用DevIL这个库处理图像编译通过,运行的时候,刚开始挺正常的,过了一段时间出错了。问题出在ilLoadImage(imagepath);这个函数上,函数返回值为FALSE。图片路径和图片本身是没问题的,而且这个函数针对前面的很多幅图像运行也是正确的,我就搞不懂它为什么会又不正确了。请大家看看。
附上一些代码,供大家参考
  1. static int devil_loaded = 0;
  2.     unsigned int imID;
  3.     int done = 1;
  4.     if(devil_loaded == 0)
  5.     {
  6.         ilInit();
  7.         ilOriginFunc(IL_ORIGIN_UPPER_LEFT);
  8.         ilEnable(IL_ORIGIN_SET);
  9.         devil_loaded = 1;
  10.     }
  11.     ///
  12.     ilGenImages(1, &imID);
  13.     ilBindImage(imID);
  14.     if(ilLoadImage(imagepath))
  15.     {
  16.         w = ilGetInteger(IL_IMAGE_WIDTH);
  17.         h = ilGetInteger(IL_IMAGE_HEIGHT);
  18.         int ilformat = ilGetInteger(IL_IMAGE_FORMAT);
  19.         if(SetImageData(w, h, ilGetData(), ilformat, GL_UNSIGNED_BYTE)==0)
  20.         {
  21.             done =0;
  22.         }else     if(GlobalUtil::_verbose)
  23.         {
  24.             std::cout<<"Image loaded :\t"<<imagepath<<"\n";
  25.         }
  26.     }else
  27.     {
  28.         std::cerr<<"Unable to open image [code = "<<ilGetError()<<"]\n";
  29.         done = 0;
  30.     }
  31.     ilDeleteImages(1, &imID);

由于ilLoadImage函数出错,程序输出“Unable to open image code = 1506”,查阅资料得知这对应IL_LIB_JPEG_ERROR,好像和jpeg库有关,到这里我就束手无策了,希望懂的人给点意见
离线彩阳

只看该作者 1楼 发表于: 2014-05-06
我看过ResIL,是DevIL的继任者。一些开源的游戏引擎依赖它,但是没有深究。
上海Qt开发联盟,热忱地欢迎你的加入!
离线wjz2047

只看该作者 2楼 发表于: 2014-05-07
回 彩阳 的帖子
彩阳:我看过ResIL,是DevIL的继任者。一些开源的游戏引擎依赖它,但是没有深究。 (2014-05-06 19:03) 

你觉得会不会和我调用的DevIL.dll这个文件有关?
快速回复
限100 字节
 
上一个 下一个