|
发表于 2013-7-18 17:40:45
|
显示全部楼层
本帖最后由 fdp0525 于 2013-7-18 17:43 编辑
工程中使用freeImage读取的jpg格式和PPM图片时有偏移,
把读取的代码修改一下可以正常读取PNG,jpg,ppm,bmp,没有没有偏移。
osg::Image* readImageData( FIBITMAP* src )
{
FIBITMAP* dib = src;
dib = FreeImage_ConvertTo32Bits(dib);
int w = FreeImage_GetWidth(dib);
int h = FreeImage_GetHeight(dib);
GLubyte *textura = new GLubyte[4*w*h];
char* pixeles = (char*)FreeImage_GetBits(dib);
//#pragma omp parallel for
for(int j=0;j<w*h;j++)
{
textura[j*4+0]= pixeles[j*4+2];
textura[j*4+1]= pixeles[j*4+1];
textura[j*4+2]= pixeles[j*4+0];
textura[j*4+3]= pixeles[j*4+3];
}
osg::Image* image = new osg::Image;
image->setImage( w, h, 1, GL_RGBA, GL_RGBA, GL_UNSIGNED_BYTE,textura, osg::Image::USE_NEW_DELETE );
return image;
} |
-
修改后读取正常
-
jpg,ppm读取有偏移的
|