8 – User interface crop image to defined size and download image from html or generated image

I’m new with Drupal 8 and would appreciate a lot some help,
I’m trying to create a form with two text fields and one for uploading an image, for the image upload, the user (not authenticated) should be able to cut it or enlarge it manually to a defined size of 350X350. Once the user submits it, it saves a content type and redirects to the next page where the image and the fields that the user entered will be rendered in a card (html), finally the user will be able to download an image of the card generated.

I would appreciate it if you can help me know how:

  1. Generate a form with the option to manually upload and cut the image 350X350 (like twitter or facebook profile picture) and the two text fields

  2. Generate a “download card” button that allows you to download an image from HTML with styles or another method that allows to download an image resulting from the data entered by the user

I’ve tried a custom form that creates a new content type’s node, but I don’t know how to make the crop functionality. Previously, I used the still-gd library for other implementation that only used text, but I would like to know a better approach for generating images.