Re: [osg-users] Convert wxImage to osg:Image

2010-10-03 Thread Lahiru Lakmal
Hi,

I updated the code as follows.


Code:

wxImageHandler * tgaLoader = new wxJPEGHandler();
wxImage::AddHandler(tgaLoader);
wxImage wximage;
wximage.LoadFile(_T(/home/lahiru/Pictures/IMG_6064.JPG), wxBITMAP_TYPE_JPEG);

wxMemoryOutputStream img_data(NULL,0);
wximage.SaveFile(img_data,wxBITMAP_TYPE_JPEG);
wxStreamBuffer* output_buffer = img_data.GetOutputStreamBuffer();
int length = output_buffer-GetDataLeft();
char buffer[length];
output_buffer-Read(buffer,length);

std::stringstream ss;
ss.write(buffer,length);

osgDB::ReaderWriter* plugin = 
osgDB::Registry::instance()-getReaderWriterForExtension(JPEG);
osgDB::ReaderWriter::ReadResult result = plugin-readImage(ss);

osg::Image* klnFace = result.getImage();




However, for some reason, output_buffer-GetDataLeft(); returns 0.

In the actual use case, I have to convert a wxBitmap into an osg::Image to 
apply it as a texture. I will try to save the wxImage as a file and load it 
into an osg::image for the time being.

I really appreciate some help on this.

Thank you!

Best Regards,
Lahiru

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=32326#32326





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Convert wxImage to osg:Image

2010-10-03 Thread Lahiru Lakmal
Hi all,

After trying for few hours, I was able to convert the wxImage into an 
osg:Image, and apply it as a texture.

I am posting the code below as it might help someone else as well.


Code:

wxBitmap bmp(wximage);
wxNativePixelData data(bmp);

wxNativePixelData::Iterator p(data);

osg::Image* klnFace = new osg::Image();
int tex_width = data.GetWidth();
int tex_height = data.GetHeight();
klnFace-allocateImage(tex_width, tex_height, 1, GL_RGBA, GL_FLOAT);

float* img_data = (float*)klnFace-data();
for (unsigned i = 0; (i  tex_height); i++) {
for (unsigned j = 0; (j  tex_width); j++) {
int ind = i*tex_width + j;
img_data[ind*4]   = p.Red()/255.0;
img_data[ind*4+1] = p.Green()/255.0;
img_data[ind*4+2] = p.Blue()/255.0;
img_data[ind*4+3] = 1.0;

p.MoveTo(data, j, tex_height-1-i);
}
}




I used wxNativePixelData to access the raw image data.

Thank you!

Cheers,
Lahiru

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=32330#32330





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Convert wxImage to osg:Image

2010-10-01 Thread Lahiru Lakmal
Hi,

I modified the code to convert a wxImage to osg Image as follows. However, for 
some reason the resulting osg Image is not accurate. When I apply the resulted 
osg Image as a texture, it shows nothing but a gray colored QUAD.

Am I  doing something wrong in the code below?
I really appreciate your help!


Code:

wxImageHandler * imgLoader = new wxJPEGHandler();
wxImage::AddHandler(imgLoader);
wxImage wximage;
wximage.LoadFile(_T(pictures/img.JPG), wxBITMAP_TYPE_JPEG);

unsigned char* datachar = wximage.GetData();
std::stringstream ss;
size_t len = strlen((const char*)datachar);
ss.write((const char*)datachar, len);

osgDB::ReaderWriter* plugin = 
osgDB::Registry::instance()-getReaderWriterForExtension(JPEG);

/* tried both ss and ss.str() */
osgDB::ReaderWriter::ReadResult result = plugin-readImage(ss);
// osgDB::ReaderWriter::ReadResult result = plugin-readImage(ss.str());

/* Texture */
osg::Texture2D* KLN89FaceTexture = new osg::Texture2D;
KLN89FaceTexture-setDataVariance(osg::Object::DYNAMIC);

osg::Image* klnFace = result.getImage();




Thank you!

Best Regards,
Lahiru[/code]

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=32302#32302





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Convert wxImage to osg:Image

2010-09-30 Thread Lahiru Lakmal
Hi Thibault,

Thanks for the sample code! 
However, it is actually to covert an osg:Image to a wxImage right?

Well... in my case, I need to convert a wxImage to an osg:Image. So that I can 
apply it as a texture on my GL_QUAD.

Anyway, I will look more into your sample code... I might find a starting point!

Many Thanks!

Best Regards,
Lahiru

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=32239#32239





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Convert wxImage to osg:Image

2010-09-28 Thread Lahiru Lakmal
Hi Thibault,

Thanks a lot for the reply!
I will check this out.

Thanks again!

Best Regards,
Lahiru

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=32135#32135





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


[osg-users] Convert wxImage to osg:Image

2010-09-27 Thread Lahiru Lakmal
Hi all,

I am trying to create a wxImage (bitmap) in runtime using wxMemoryDC, draw a 
gradient rect on it and apply the bitmap as a texture on a QUAD.

But I still couldn't find a proper way to convert the proceed wxImage (with 
gradient) into a osg:Image.

I really appreciate if you can help me with this.

Thank you!
Best Regards,
Lahiru

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=32104#32104





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org