Hi The fllowing code can be run correct in the OSG1.0, and export the image 
named a.bmp correct, it can be run correct in OSG2.0 too , but the a.bmp is 
incorrect , it appear all gray.I don't know what's the difference from 1.0 to 
2.0 at image.Wait your response .Sorry for my poor English~~~   #include 
<osgViewer/Viewer>
#include <osg/Camera>
#include <osg/Image>
#include <osgDB/ReadFile>
#include <osgDB/WriteFile>
#include <osgDB/Registry>
#include <osgGA/GUIEventHandler>
class ImageHandler : public osgGA::GUIEventHandler
{
public:
 ImageHandler(){};
 ~ImageHandler(){};
 bool handle( const osgGA::GUIEventAdapter& ea,
            osgGA::GUIActionAdapter& aa )
 {
  osgViewer::Viewer* viewer =
                dynamic_cast<osgViewer::Viewer*>( &aa );
        if (!viewer)
            return false;
  switch(ea.getEventType())
  {
   case(osgGA::GUIEventAdapter::KEYDOWN):
    {
     if(ea.getKey() == 'c')
     {
      osg::ref_ptr<osg::Image> image = new osg::Image;
      
image->setAllocationMode(osg::Image::AllocationMode::USE_MALLOC_FREE);//USE_MALLOC_FREE
      image->readPixels(0,0,1280,1024,GL_RGBA,GL_UNSIGNED_BYTE);      
osgDB::writeImageFile(*image,"a.bmp");
     }
    }
   default:
    return false;
  }
 }
};int
main( int, char ** )
{
    osgViewer::Viewer viewer;
 viewer.addEventHandler( new ImageHandler());
    viewer.setSceneData( osgDB::readNodeFile( "cow.osg" ) );
    if (!viewer.getSceneData())
    {
        osg::notify( osg::FATAL ) << "Unable to load data file. Exiting." << 
std::endl;
        return 1;
    }    return viewer.run();}
_______________________________________________
osg-users mailing list
osg-users@openscenegraph.net
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/

Reply via email to