Im testing out blit() and i ran into this error:

Traceback (most recent call last):
  File "/home/tom/Desktop/pygame/test/main.py", line 15, in <module>
    screen.blit('image.jpg', (10,10))
TypeError: argument 1 must be pygame.Surface, not str

this is my code:

import pygame
pygame.init()
running = 1
while running == 1:
    screen = pygame.display.set_mode((800, 600))
    event = pygame.event.poll()
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = 0
        image = pygame.image.load('image.jpg').convert()
        screen.blit('image.jpg', (10,10))
        screen.fill((0, 0, 0))
        pygame.display.flip()

any ideas?

Nah, that didnt work, but it did get rid of the error, just dosnt show the pic on screen.

Generally its done this way ...

import pygame

# optional
pygame.init()

# create the screen (or pygame window)
screen = pygame.display.set_mode((800, 600))

# fill the screen black (default)
screen.fill((0, 0, 0))

# pick an image you have (.bmp  .jpg  .png  .gif)
# if the image file is not in the working folder,
# use the full pathname
# convert() is optional for higher speed
image = pygame.image.load('image.jpg').convert()

# draw image and position the image ulc at x=10, y=10
screen.blit(image, (10,10))

# nothing gets displayed until one updates the screen
pygame.display.flip()

# start event loop and wait until
# the user clicks on the window corner x
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            raise SystemExit

You had some indentation problems, and filled the screen black after drawing the image. Also, don't put the file loading into the event loop or it will keep loading and loading ...

This question has already been answered. Start a new discussion instead.