Основная цель уменьшение размера изображений путём уменьшения разрешения / сжатия.
Подскажите как это можно сделать. В идеале до загрузки на сервер, т.е. на компьютере пользователя, если такое возможно.
File API — это библиотека, предназначенная для работы с файлами на клиенте и последующей их загрузки на сервер. Основная сфера применения — загрузка и редактирование изображений. https://opensource.mail.ru/File-API
Можно, например, использовать готовую библиотеку Imagine, с помощью которой обрабатывать загружаемое изображение до сохранения его на диск на сервере: imagine.readthedocs.io/en/latest