Python pygame displays images to screen from a string/surface buffer, in grey

I want to display images to the screen in their original colour, but this code is showing greyscale images. I want to use pygame.images.frombuffer() because it is the lowest resource usage. Also looking for formatting critiques and OOP critiques.

import pygame # import random   colours = {     "red": [255, 0, 0],     "black": [0, 0, 0],     "white": [255, 255, 255],     "blue": [0, 0, 255],     "green": [0, 255, 0] }   images = ['house.bmp', 'car.bmp', 'logo.bmp'] imageFormat = "ARGB"   resolution = {     "small": [600, 600],     "large": [1200, 700],     "x-large": [1920, 1600] }  screenSize = resolution["large"] bottomEdge, rightEdge = screenSize   pygame.init() clock = pygame.time.Clock()  gameDisplay = pygame.display.set_mode(screenSize, 0, 32) pygame.display.set_caption('Wandering Sojourn')   imageList = {} for image in images:     """Load images from folder into dict of Surface buffers."""     __img = pygame.image.load('images/' + image)     __img_size = pygame.Surface.get_rect(__img).size     __img = pygame.image.tostring(__img, imageFormat)     __img = pygame.image.frombuffer(__img, __img_size, imageFormat)     imageList[image] = __img   # def drawImage(imageToDraw, imagePosition): #    """Docstring. # #    This is more summary of this function. #    """ #    gameDisplay.blit(imageToDraw, imagePosition)   gameOver = False while not gameOver:     for event in pygame.event.get():         if event.type == pygame.QUIT:             gameOver = True      gameDisplay.fill(colours["black"])     gameDisplay.blit(imageList['house.bmp'], (50, 50))     gameDisplay.blit(imageList['car.bmp'], (100, 50))     gameDisplay.blit(imageList['logo.bmp'], (bottomEdge-50, rightEdge-50))      pygame.display.update()     clock.tick(60)  pygame.quit() quit()