图片"/>
glReadPixels翻转图片
用Opengl的接口glReadPixels去读取内存并保存为ppm格式时,会发现图片是倒置的,也就是需要一个逆置或者flip操作,
我使用glReadPixels的方式如下:
uint8_t* buf;
buf = (uint8_t*)malloc(sizeof(uint8_t)*SCR_WIDTH*SCR_HEIGHT*3);
glReadPixels(0,0,SCR_WIDTH,SCR_HEIGHT,GL_RGB,GL_UNSIGNED_BYTE,buf);
flip代码如下:
void flip(uint8_t** buf)
{int totalLength = SCR_HEIGHT*SCR_WIDTH*3;int oneLineLength = SCR_WIDTH*3;uint8_t* tmp = (uint8_t*)malloc(SCR_HEIGHT*SCR_WIDTH*3);memcpy(tmp,*buf,SCR_WIDTH*SCR_HEIGHT*3);memset(*buf,0,sizeof(uint8_t)*SCR_HEIGHT*SCR_WIDTH*3);for(int i = 0; i < SCR_HEIGHT;i++){memcpy(*buf+oneLineLength*i,tmp+totalLength-oneLineLength*(i+1),oneLineLength);}
}
更多推荐
glReadPixels翻转图片
发布评论