Вы правы, что вы не можете сделать это с помощью javascript - не без возврата всего содержимого изображения обратно в браузер.
Что касается Python - то, что он «устарел», не означает, что он удален, - он все еще присутствует в Python 2.7, и, поскольку Python 2.7 будет поддерживаться более или менее «навсегда», поскольку каждому потребуется несколько лет, чтобы перейти в Python 3.x вы можете рассчитывать на доступность imageop.
Что касается установки PIL - это "путь" - вам не нужно устанавливать его как root - его можно установить как пользователь unix. Это означает: вам нужен доступ к оболочке или, по крайней мере, доступ к развертыванию файла, не указывайте его в каталоге, к которому у вас есть права на запись, и соответственно установите PYTHONPATH.
Тем не менее, это может быть сложно установить PIL таким образом, это может быть сделано - в худшем случае (если у вас есть только доступ для записи в файл, но нет оболочки), вам придется имитировать работающую среду на вашей стороне (например, установив виртуальную машину с теми же версиями библиотеки, что и на вашем сервере), и создайте ее там, а затем переместите файлы на сервер.
Поиск чистого Python способа работы с изображениями дает PNGCanvas , но у него нет возможностей масштабирования изображения. (и, конечно, может работать только с файлами PNG).
Другой альтернативой является использование веб-службы для выполнения операций с изображениями. Затем вы отправите все изображение в приложение на другом сервере и получите только свой эскиз. Поиск «бесплатный веб-сервис изображений» дает ряд результатов.