I’ve seen this kind of sites or even worked on it.
You can add custom sizes from your theme’s functions.php file using add_image_size(). This may help you https://developer.wordpress.org/reference/functions/add_image_size/
Based on your requirement I think this would help you too http://www.wpexplorer.com/wordpress-image-crop-sizes/
Feel free to ask any queries.