Getting a new Surface from an existing Surface?

You need to create a new SDL_Surface of size 32x32 and do SDL_BlitSurface with source rect parameter set to the desired source region. Source surface is of course a spritesheet one and destination is your new surface.