Playing with surfaces
PyGame have many function that can rotate, scale, or other fancy transformations. They are grouped in pygame.transform module. If have trouble with them just look at wikipedia.
pygame.transform.flip(Surface, xbool, ybool) flip vertically and horizontally
pygame.transform.scale(Surface, (width, height), DestSurface = None) resize to new resolution
pygame.transform.rotate(Surface, angle) rotate an image
pygame.transform.rotozoom(Surface, angle, scale) filtered scale and rotation
pygame.transform.scale2x(Surface, DestSurface = None) specialized image doubler
pygame.transform.smoothscale(Surface, (width, height), DestSurface = None) scale a surface to an arbitrary size smoothly
pygame.transform.chop(Surface, rect) gets a copy of an image with an interior area removed
pygame.transform.laplacian(Surface, DestSurface = None) find edges in a surface
pygame.transform.average_surfaces(Surfaces, DestSurface = None) find the average surface from many surfaces
pygame.transform.threshold(DestSurface, Surface, color, threshold = (0,0,0,0), diff_color = (0,0,0,0), change_return = True, Surface =None) finds which, and how many pixels in a surface are within a threshold of a color.