There is a deault feature available on WP to crop image once you upload. You can edit the image you upload and can crop image with
How to crop rotate scale and flip images in wordpress
WordPress by default is designed to generate 3 types of cropping of any uploaded images (Media) automatically to ensure site speed with different sizes where necessary. So, with uploading the Original image there would be at least 4 files-
The Original File (not-cropped),
=> the_post_thumbnail('full'); // Original image resolution (unmodified)
=> the_post_thumbnail('large'); // Large resolution (default 640px x 640px max)
=> the_post_thumbnail('medium'); // Medium resolution (default 300px x 300px max)
=> the_post_thumbnail('thumbnail'); // Thumbnail (default 150px x 150px max)
the_post_thumbnail( array(100,100) ); // Other resolutions
You can add other custom size with your preference as:
=> add_image_size() //will automatically create the versions of the images suitable for positioning in your website theme.
Using add_image_size() function with your desired parameter allows you to add new size for your site. Use the function into your functions.php to add your desired image size:
Hope that helps!!