簡體   English   中英

Opengl glubyte數組為整數值

[英]Opengl glubyte array to integer value

我已經將RGB值存儲在大小為3的GLubyte數組中,並且想知道如何將RGB顏色值表示為單個整數,所以我想要的是將所有3個值組合起來創建顏色的整數表示,有人可以解釋怎么做?

像這樣的東西應該做的伎倆:

int color=(ar[0] << 16) | (ar[1] << 8) | ar[2];

您可以使用位移來生成整數:

GLuint get_number(GLubyte const* ptr) {
    // magic numbers for shift sizes are safe because GL types have fixed sizes
    // (8 for GLubyte and 32 for GLuint)
    return ptr[0] << 16 + ptr[1] << 8 + ptr[2];
}

要填充數組,您可以使用位掩碼:

void get_bytes(GLuint number, GLubyte* out) {
    out[0] = (number & 0xFF0000) >> 16;
    out[1] = (number & 0x00FF00) >> 8;
    out[2] = number & 0x0000FF;
}

YourInteger = R + G*256 + B*65536

那是你在找什么?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM