Image Formatting Workflow

Hi, I need to create a workflow which allows a user to do the following, I am just starting out so I have no clue of how to even start this process:

  1. Upload an image of a product eg. a picture of a coke bottle on a white or transparent background (PNG or JPEG format).
  2. Input values in pixels to resize the canvas size eg. 1000px x 1000px.
  3. Insert a % which will add some form of border or dotted line on the canvas to indicate max area. Eg. 85%.
  4. Resize the uploaded image manually so that the bottle is within the max area (85%).
  5. Change the output file name.
  6. Input Name, company name, email.
  7. Choose output image format (PNG or JPEG format).
  8. User clicks download. An email with download link of image is sent to me (admin) and the user.