来自RGB565的pygame Surface

时间:2014-02-06 18:07:43

标签: python pygame

我是pygame的新手,我正在尝试从RGB565缓冲区创建一个Surface,这是我到目前为止所做的:

def rgb_to_surface(buff):
    arr = np.fromstring(buff, dtype=np.uint16).newbyteorder('S')
    r = (((arr & 0xF800) >>11)*255.0/31.0).astype(np.uint8)
    g = (((arr & 0x07E0) >>5) *255.0/63.0).astype(np.uint8)
    b = (((arr & 0x001F) >>0) *255.0/31.0).astype(np.uint8)
    arr = np.concatenate((r,g,b))
    return pygame.image.frombuffer(arr, (160, 120), 'RGB')

它有效,除了图像是平铺的,任何想法我做错了什么?

enter image description here

1 个答案:

答案 0 :(得分:1)

我应该使用column_stack来获取r g b r g b...

arr = np.column_stack((r,g,b)).flat[0:]