2013-08-27 48 views
0

抱歉,如果它是重複的,我發現很多指針但沒有關於以下的答案;RGB顏色列表像[255,0,0]二進制像b' xff x80 x00'(用於混合器紋理緩衝區)

我想那種轉換的RGB值列表:

rgb = [ 255,128,0 ] 

這個二進制格式:

Brgb = b'\xff\x80\x00' 

這是攪拌器養活GL紋理緩衝器和產生均勻的紋理。

到目前爲止,我的意思是,因爲3小時後10MN點擊這裏,這裏和測試,我用這個有點扯,但工作,代碼:

rgb = [255,128,0] 
rgb = "\\x%02X\\x%02X\\x%02X" % (rgb[0],rgb[1],rgb[2]) 
brgb = eval("b'%s'"%rgb) 

logic.tex.source.load(brgb * (256*256),256,256) 
# got this orange texture in my buffer 

你會怎麼做這正常嗎? 非常感謝

回答

4

只需轉動整數到bytes直接

>>> rgb = [255, 128, 0] 
>>> bytes(rgb) 
b'\xff\x80\x00' 

整數序列直接解釋爲字節值。

+1

對於任何使用Python 2.x的讀者,即使你不能在這裏使用'bytes'(因爲它是'str'的​​同義詞),你可以很容易地使用'bytearray'。 – abarnert

+0

OOOMG。非常感謝Martijn – jerome

相關問題