查看: 5187|回复: 20

关于读取jpg,png图片的问题

[复制链接]

该用户从未签到

发表于 2013-11-27 21:15:29 | 显示全部楼层 |阅读模式
以前照着网上的OSG配置教程,一步一步把自己的OSG配置好,至少里面的例子能够很好的运行,截个图看下,因为OSG自带的例子中有用到读取jpg,png图片的程序。这说明我配置基本没有问题,因为OSG环境自带程序能够使用插件读取相关的文件。可是今天,我想写个简单的多纹理程序,使用osg::ref_ptr<osg::Image>tex2Img=osgDB::readImageFile("Images/blueFlowers.png");读取png文件,此时vs2010提示我缺少libpng13d.dll。这是一我没闹明白的地方,examples里程序读取不用这个动态链接库,为什么我写的时候就要这个库呢。如果说我配置问题。我C++的配置如图所示(2)。至少我觉得这样设置时没有错的。如果有错,希望指出来。还有读取jpg的时候就提示一个warning:Error in reading         to "Images/clockFace.jpg".没有提示不存在插件。完全不知所措了,上次看到OSG学习者一起开会学习的视频,我记得那个阿威说,代码是最好的文档。我就觉得说的不合理,这句话在以前说的非常对,放在现在这个飞速发展和变化的社会我觉得不对。我们应该要有种拿来主义的精神,飞速发展需要互相帮助。这样才有效率。扯远了。只希望,在OSG走的路比我长的人,给我些帮助,以至于我少浪费些时间。
1.jpg
64%Z`TUYEC51B[KQUQ4X4ZF.jpg
$B8F_Z]%{(PI52$6ILW~`WD.jpg

该用户从未签到

 楼主| 发表于 2013-11-27 21:22:46 | 显示全部楼层
附加个出错提示的代码。自己给自己回帖囧!!
2.jpg
C@B8G2FPULOFK4J62JOXSP2.jpg

该用户从未签到

发表于 2013-11-28 08:46:24 | 显示全部楼层
这个后缀是.dll工程里面需要添加的文件为.lib.你直接在osg编译出来的dll放置可执行文件下就行了

该用户从未签到

 楼主| 发表于 2013-11-28 09:16:00 | 显示全部楼层
ysw 发表于 2013-11-28 08:46
这个后缀是.dll工程里面需要添加的文件为.lib.你直接在osg编译出来的dll放置可执行文件下就行了

没明白的你的意思。我编译出来,应该和你说的也一样吧,你看我的截图。我在工程属性里添加了那个库文件名。比如jpegd.lib.还是读取不到图片。现在就只能读取bmp.图片。

可执行文件目录

可执行文件目录

插件目录

插件目录

该用户从未签到

发表于 2013-11-28 10:55:13 | 显示全部楼层
那个dll 应该是在3rdPraty中,你找找看

该用户从未签到

发表于 2013-11-28 12:33:57 | 显示全部楼层
JacaYang 发表于 2013-11-28 09:16
没明白的你的意思。我编译出来,应该和你说的也一样吧,你看我的截图。我在工程属性里添加了那个库文件名 ...

osg直接编译的话是没有那个那个libpng13.dll这个文件的,你看看你编译的是osg的那个版本的,然后直接上osg的官网下载它的可开发包,找到那个dll放进去就行了。我的是osg3.0.1的这里面有

该用户从未签到

 楼主| 发表于 2013-11-28 14:58:03 | 显示全部楼层
ysw 发表于 2013-11-28 12:33
osg直接编译的话是没有那个那个libpng13.dll这个文件的,你看看你编译的是osg的那个版本的,然后直接上os ...

好的!3Q。我试试看。

该用户从未签到

 楼主| 发表于 2013-11-28 15:40:45 | 显示全部楼层

我只需要在我在bin目录加这个文件吗?还是还要把那个第三方的include lib文件都要拷贝到OSG生成的文件中来啊。然后还需要在我的程序的工程文件中配置下?因为我刚刚试了,放在OSG生成的文件的BIN目录中,还是会提示缺失这个文件,然后我把文件放到了我的程序的工程文件的debug目录下,可是程序就在那不动了(这个暂且不管吧)然后我就是想弄明白您的意思!
OSG生成文件目录.jpg
放置libpng13d目录.jpg
总目录.jpg

该用户从未签到

 楼主| 发表于 2013-11-28 15:42:05 | 显示全部楼层
wangshaomeng 发表于 2013-11-28 10:55
那个dll 应该是在3rdPraty中,你找找看

找到了,然后把里面的文件都放到OSG生成的文件中?

该用户从未签到

发表于 2013-11-28 16:36:43 | 显示全部楼层
JacaYang 发表于 2013-11-28 15:42
找到了,然后把里面的文件都放到OSG生成的文件中?

直接设置环境变量到3rdParty的bin目录,这样会方便一点

该用户从未签到

发表于 2013-11-28 17:32:54 | 显示全部楼层
JacaYang 发表于 2013-11-28 15:40
我只需要在我在bin目录加这个文件吗?还是还要把那个第三方的include lib文件都要拷贝到OSG生成的文件中 ...

放到你的程序工程目录下。另外你说在工程的项目的属性的连接项里面,你加入了jpegd.lib这样的都不需要,工程需要的lib就是你编译的那些加上就可以了

该用户从未签到

 楼主| 发表于 2013-11-29 20:31:48 | 显示全部楼层

该用户从未签到

发表于 2013-11-30 10:51:41 | 显示全部楼层

这个问题编译3.3.0之后运行也出现过,但是草草解决了,现在用的3.1.4.。。

该用户从未签到

 楼主| 发表于 2013-11-30 14:32:29 | 显示全部楼层
乖o就一下 发表于 2013-11-30 10:51
这个问题编译3.3.0之后运行也出现过,但是草草解决了,现在用的3.1.4.。。

你是怎么解决的啊。我现在用的是3.2的。和3.1 比较,改动还是不少。好多函数都废弃了。

该用户从未签到

发表于 2013-12-1 18:59:33 | 显示全部楼层
JacaYang 发表于 2013-11-30 14:32
你是怎么解决的啊。我现在用的是3.2的。和3.1 比较,改动还是不少。好多函数都废弃了。

但留下的是精华(自己编译一些第三方库貌似就能解决)

该用户从未签到

发表于 2013-12-2 11:33:25 | 显示全部楼层
“我们应该要有种拿来主义的精神,飞速发展需要互相帮助。这样才有效率。扯远了。只希望,在OSG走的路比我长的人,给我些帮助,以至于我少浪费些时间。”

针对这句话我谈谈自己的看法好了,不针对人。不过既然提到“互相”,就不要只站在一个方面去表达问题。也不要以“初学”“菜鸟”为借口将自己一直摆在发展中国家的角色,期望获利;每个人都有做贡献的方法,没有人只配付出,也没有人尽然享受。

论坛我们做了很久,各种方式都尝试过:写教程,写书,翻译文档,无偿研讨会,免费代码,甚至一帮一,都施行过,最后换来的只是各种推诿、遗忘和埋怨“服务不周”而已。。

我是新手我该被服务,我是新手我无力做贡献——这样的言论没有任何问题,我慢慢也能接受这样的说法;但是相应的,我也有我的回应:我也是社会中人,我的行为会符合社会的本质规律——我有兴趣的话题我会多参与讨论,我没兴趣而且也无法得到回报的话题我会从简或者忽视掉。如是而已
  • TA的每日心情
    难过
    2020-5-2 10:51
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-5-1 12:17:04 | 显示全部楼层
    请问楼主最后怎么解决这个问题的,遇到了类似的问题.
    请教一下楼主!
  • TA的每日心情
    难过
    2020-5-2 10:51
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2020-5-1 12:51:55 | 显示全部楼层
    请问楼主问题解决了吗?遇到了同样的问题想请教下楼主
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

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

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

    联系我们

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