查看: 2012|回复: 10

图片保存的问题

[复制链接]

该用户从未签到

发表于 2010-1-24 20:43:44 | 显示全部楼层 |阅读模式
用osgDB::writeImageFile保存图片,在我的电脑上保存没问题,但到了别的电脑上,就返回false,请问这是什么原因?

该用户从未签到

发表于 2010-1-24 22:34:05 | 显示全部楼层
您不给出更多的信息,抱歉我无法判断

该用户从未签到

 楼主| 发表于 2010-1-25 09:18:44 | 显示全部楼层
在摄像机的回调函数中,实现保存图片
osg::GraphicsContext::WindowingSystemInterface *wsi=
                osg::GraphicsContext::getWindowingSystemInterface();
        unsigned int width,height;
        wsi->getScreenResolution(osg::GraphicsContext::ScreenIdentifier(0),
                width,height);
        if(saveView==true)
        {
        osg::ref_ptr<Image> sImage = new Image();
         saveView =false;
        sImage->allocateImage(width,height,1,GL_RGB,GL_UNSIGNED_BYTE);
        sImage->readPixels(0,0,width,height,GL_RGB,GL_UNSIGNED_BYTE);
        bool flag1=osgDB::writeImageFile( sImage.get(), "c:\test.jpg" );
               
                if (!flag1)
                {
                        AfxMessageBox(CString("can not save to")+CString(fileName));
                }
}

在本机上效果都实现了,但到了别人的电脑上,就不能保存图片。请问是不是保存图片需要一些特别的配置?

该用户从未签到

 楼主| 发表于 2010-1-25 09:37:18 | 显示全部楼层
2# array
功能都封装在0CX中,在别人的电脑上,就出现保存失败。

该用户从未签到

发表于 2010-1-25 10:14:25 | 显示全部楼层
跟踪进去就知道了
可能是插件读取失败,找不到插件;
如果有中文路径也可能找不到插件读写文件

该用户从未签到

 楼主| 发表于 2010-1-25 11:28:08 | 显示全部楼层
插件能找到,其他功能运行都没问题
保存名没有包含中文.

该用户从未签到

 楼主| 发表于 2010-1-25 17:20:15 | 显示全部楼层
有的电脑上,readImageFile读取jpeg失败,是什么原因呢?

该用户从未签到

 楼主| 发表于 2010-1-25 21:45:19 | 显示全部楼层
找到问题了,但不知道原因。
我写了一个很小的测试程序,只包含下面一句话:
osg::image* img = osgDB::readImageFile("d:\\test.jpeg").
在本机上运行没问题,但将相应的dll、lib、.h文件拷贝到别人的电脑上运行,img始终为NULL。但如果别人的电脑上也是通过osg安装文件安装osg,则能得到正确的结果。
很诡异,请各位解释下原因。
现在的问题是,怎样设置别人的机器,让其不用安装文件安装osg,仅仅通过拷贝dll、lib、.h就能正确运行程序呢?
谢谢

该用户从未签到

发表于 2010-1-25 21:55:48 | 显示全部楼层
应该是插件库文件没拷过去吧~

该用户从未签到

发表于 2010-1-26 09:51:58 | 显示全部楼层
插件库是动态链接的,根据保存文件后缀,寻找相应插件。
比如.jpg,会寻找程序目录下的osgplugins-2.8.2文件夹osgdb_jpegd.dll,即osgplugins-2.8.2\osgdb_jpegd.dll。

该用户从未签到

 楼主| 发表于 2010-1-27 10:57:33 | 显示全部楼层
楼上说的正确。将插件库放入sysetem32下就可以了
结贴
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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