Мне загрузить изображение либо выбрав файл, либо по его ссылки, со вторым вариантом не знаю как сделать, а далее выбрать оставить такого размера или изменить, если изменить, то мне нужно задать высоту + ширину (какие инструменты есть для этого?) А далее измененную картинку оставить на бэкенде, а загруженную фотографию оставить в исходном размере в папке моего проекта
Для работы с изображениями есть разные библиотеки и программы. Есть, например, библиотеки-обвязки для ImageMagick.
Как скачать изображение? Очевидно, клиентом HTTP.