2014-02-06 4 views
1

Я новичок в Pygame, и я пытаюсь создать поверхность из RGB565 буфера, это то, что я до сих пор:Pygame поверхности от RGB565

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

я должен использовать, чтобы получить column_stackr g b r g b...

arr = np.column_stack((r,g,b)).flat[0:] 
Смежные вопросы