Create new different sized image from existing image

Is there a way to generate a new image with a specific width x height from an existing image?

Context:
My users login with a social app (twitter, fb, etc). I use their profile picture as the profile picture for their account for my app.

When I show their pictures on a map, I’d like them to be a specific (smaller) size. Is there a way to take the existing image and save a smaller version as another field?

I haven’t tried this, but I don’t see why not. I’m thinking:

  1. when user uploads a picture
  2. send picture to some API service that does that
  3. save smaller picture to user's small-picture (for example).

yeah step 2 “send picture to some API service” is what I was hoping there is a plugin for but I haven’t found a simple one that does that. So I am searching for and external API that now

Any updates or insights please?