我將OpenGL紋理2D中的像素讀入字節數組(無符號字符),因爲它通常是完成的。但是現在我需要將其轉換爲圖像數組(我認爲是整數)從CPU加載的用於反向處理的圖像的佈局和像素範圍。 我的問題是 - 它是濫竽充數的事:的OpenGL將RGBA字節像素轉換爲圖像整數陣列
glGetTexImage(GL_TEXTURE_2D,0,GL_RGBA,GL_UNSIGNED_INT,bytes);
代替:
glGetTexImage(GL_TEXTURE_2D,0,GL_RGBA,GL_UNSIGNED_BYTE,bytes);
,然後遍歷每個整數,它從0-1範圍內轉換爲0-255? 我還沒有真正發現沒有使用3方圖像庫進行這樣的轉換的任何示例。
如果我這樣做:
size_t lenght=_viewWidth * _viewHeight ;
GLubyte *bytes=(GLubyte*)malloc(lenght);
/////////////// read pixels from tex /////////////////////
glBindTexture(GL_TEXTURE_2D,tex);
glGetTexImage(GL_TEXTURE_2D,0,GL_BGR,GL_UNSIGNED_BYTE,bytes);
uint8_t Rc, Gc, Bc;
for(x = 0; x < lenght; x+=3)
{
Bc = *bytes + x;
Gc = *bytes + x + 1;
Rc = *bytes + x + 2;
}
爲RC,GC和BC要在0-255範圍?
如果我的紋理具有RGBA和RGBA8作爲內部格式,並且我將它讀作無符號字節,那麼tee數據的範圍是0-255嗎? – 2013-03-14 19:14:30
是的。在這種情況下,甚至不應該進行任何轉換,因爲RGBA8很可能使用無符號字節來存儲組件。 – radical7 2013-03-14 19:41:44