查看: 2055|回复: 12

求助:PNG格式的文件无法读出

[复制链接]

该用户从未签到

发表于 2011-8-16 17:12:27 | 显示全部楼层 |阅读模式
本帖最后由 Hadse 于 2011-8-17 11:58 编辑

使用版本为本论坛下载的OSG3.0.0,winxp sp3,vs2008
能正常加载OSG格式的文件,但无法加载PNG格式文件,而且仅是PNG,其他格式均无异常。
语句:osg::ref_ptr<osg::Image> i = osgDB::readImageFile("primitives.png");
运行至命令窗口时会提示:Warm:could not find plugin to read objects from file "primitives.png"

编译出的程序全部放在C:\osg\OpenSceneGraph\build目录下
确认CMAKE中3RD_PARTY_DIR设置为 C:\osg\3rdParty
PNG的lib路径均正确
环境变量中,系统PATH路径添加了C:\OSG\OpenSceneGraph\bin\bin\;
VS2008中INCLUDE添加了C:\OSG\OpenSceneGraph\bin\include
LIB添加了C:\OSG\OpenSceneGraph\bin\lib

麻烦知道的解释下,问题出在那了?

libpng13d.dll.png
osgdb_pngd.dll.png

该用户从未签到

发表于 2011-8-17 09:59:15 | 显示全部楼层
您读取的明明是gif。。。

该用户从未签到

 楼主| 发表于 2011-8-17 11:31:26 | 显示全部楼层
回复 2# array


   我打错了代码  语句:osg::ref_ptr<osg::Image> i = osgDB::readImageFile("primitives.png");

该用户从未签到

发表于 2011-8-17 11:42:59 | 显示全部楼层
打开 ccmake 看看 OpenSceneGraph,它找到的 png plugin 是不是正确的?比如把 debug 版和release 版搞混了?如果找错了,需要手动改过来,重新编译

该用户从未签到

 楼主| 发表于 2011-8-17 11:57:26 | 显示全部楼层
回复 3# Hadse

是这个吗?能再说的详细点吗?谢谢
QQ截图未命名.png

该用户从未签到

发表于 2011-8-17 12:18:41 | 显示全部楼层
哦,这个是对的。还有一个 ACTUAL_3RDPARTY_DIR  那个要填入正确的地址,把解压的3rdParty 放在那里。还有别的问题就不知道了

该用户从未签到

 楼主| 发表于 2011-8-17 12:51:56 | 显示全部楼层
回复 6# xuganggm
QQ截图未命名.png

该用户从未签到

 楼主| 发表于 2011-8-17 12:53:45 | 显示全部楼层
编译的过程应该没什么问题了,编译过程我自己完成的,就是不知道“第三方插件”和“OSG的版本”会发生冲突吗?

该用户从未签到

发表于 2011-8-17 14:53:01 | 显示全部楼层
好好查查库吧,路径啥的

该用户从未签到

发表于 2011-8-18 08:30:37 | 显示全部楼层
那您确信自己有这个图片文件吗,我只知道osg自带的示例数据中只有primitives.gif可没有png。。。

该用户从未签到

发表于 2011-8-18 08:44:46 | 显示全部楼层
1 你的第三方依赖库是自己编译的吗?你在osg的源码的工程里,把这个项目拷贝进去,运行下,看是不是找不到这个插件。
2  比如libpng13.dll,你试试Release和Debug版本都可以运行吗?
3  如果脱离osg的环境,在VC下测试下libpng13.dll是否正常,还有就是用depends查查libpng13的依赖dll,因为又可能第三方插件的编译,依赖了vc8.0或者VC7.1也是有可能的。
  先不要着急,把上面的几种方法都试试,在判断。

该用户从未签到

 楼主| 发表于 2011-8-18 08:48:44 | 显示全部楼层
回复 10# array


   这只是一个例子,问题是我读不出png格式的图片。

该用户从未签到

 楼主| 发表于 2011-8-18 09:00:49 | 显示全部楼层
本帖最后由 Hadse 于 2011-8-18 09:04 编辑

回复 11# CWorld


   原来的OSG是我自己编译的,第三方插件是用SVN下的,生成的DLL都添加到Bin里了,但还是不成功。然后我在论坛下载一个OSG-3.0.0 这里面的DLL比较全,原来的PNG和JPG都无法读取,现在JPG可以读取,如果把PNG转化成JPG格式,也可以读出了。
QQ截图未命名.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表