I originally came across this article that explained how to create a Service with the Automator app. That article was useful but it restricted image resizing to a single size, which to me is completely not acceptable. I decided to improve on that solution and show how a Service can be created that would resize images to any size either in pixels or as a percentage value, based on user input. Here's how.
First launch the Automator app and create a new document (File > New), then select Service as the document type.
Next make sure you set the following:
- Service receives selected - image files
- in - any application
Then add the following two actions (use the search box to find them quickly):
- Get Specified Finder Items
- Scale Images
For the Scale Images action enter a default value to use for the size, I chose 1280 since that's what I typically resize images to. Also make sure to tick the 'Show this action when the workflow runs' check box under the Options tab.
You can now Save your service with a meaningful name like 'Resize Images'.
Now when you right-click and image file you can go to Services and you will see that 'Resize Images' is an option that can be clicked.

When clicked, an input box is shown asking for the image size. This value can be entered either in pixels or as a percentage. Remember this is the horizontal size for the image, the vertical size will be worked out automatically based on the aspect ratio of the image.

-i