Уменьшение картинки до определенного размера.

Wicked

Новичок
Уменьшение картинки до определенного размера.

Ситуация: Есть мой сайт, который в силу своей конфигурации умеет принимать от браузера большие картинки (до 100 мбайт). Затем он должен отправить их на некий 3rd party сервис, который умеет принимать картинки только до 2 мб, чего бывает недостаточно. Сжимать предполагается в jpeg. Средства сжатия не ограничны (но лучше, если обойдется imagemagick'ом).

Проблема: Как сжимать картинки больше 2 мб до размера меньше 2 мб, но наиболее близкого к нему? Чтобы картинка пролазила, но потери качества были минимальны...

Пока что в голову приходят только итеративные способы: сжали, замерили, пережали, замерили, ... , замерили, зааплоадили. При таком способе можно использовать метод хорд, чтобы минимизировать кол-во итераций. Также можно накладывать целевые ограничения: например, ограничивать кол-во итераций, кол-во отведенного времени, целевой размер, но боюсь, что эти ограничения взаимоисключающие.

Есть предложения, как улучшить этот процесс, желательно принципиально?
 

untied

Сдвинутый новичок
А по FTP нельзя отправлять большие картинки на 3d party сервис?
Можно ли уменьшать геометрический размер картинок?
Просто может найтись такая большая размерами картинка, которая и при максимальном сжатии JPEG будет весить больше двух мегов. ;)
 

Wicked

Новичок
А по FTP нельзя отправлять большие картинки на 3d party сервис?
Нет. Только POST запросом.
Можно ли уменьшать геометрический размер картинок?
Да, но приоритет у этого поменьше.
И даже если пойти этим путем, то мне все равно видится итеративный алгоритм.
Просто может найтись такая большая размерами картинка, которая и при максимальном сжатии JPEG будет весить больше двух мегов. ;)
Согласен, может :) Но предположим, что это невозможно.
 
Сверху