|
楼主 |
发表于 2011-3-11 12:00:49
|
显示全部楼层
恩。。是这样的一个过程
this->_Img=new osg::Image;
this->_Img->allocateImage(200,200,1,GL_RGBA,GL_FLOAT);
int row=0,column=0;
for(;row<100;row++)
{
float* pixel_data = (float*)this->_Img->data(0, row);
for(column=0;column<100;column++)
{
(*pixel_data)=0.6f; //r
pixel_data++;
(*pixel_data)=0.6f; //g
pixel_data++;
(*pixel_data)=0.6f; //b
pixel_data++;
(*pixel_data)=1.0f; //a
pixel_data++;
}
}
osgDB::writeImageFile(*(this->_Img),"..//img.bmp");
就是想试验一下这100个像素是否被正确指定为(0.6f,0.6f,0.6f,1.0f)这个颜色,但之后打开这个img.bmp,发现里面是有400个像素都被写入了这种颜色,这是为什么呢?也就是说这样来操作data数组的方式有没有什么问题呢?请array老师指教,谢谢! |
|