Есть проект, бот которого шустрит по сайтам, ищет изображения (обои на рабочий стол) добавляя их себе. Далее это изображение можно скачать, выбрав нужный размер.
Когда бот находит изображение он выбирает максимально большой размер и сохраняет его себе, получается так что размеры бывают не стандартные, например 8192x3072 — с такого размера перевести в 1280x1024 сложно, половина изображения просто потеряется.
Как найти нужный (с более-менее универсальным aspect ratio) размер?
//
Сейчас есть такая мысль: Сначала искать самые большие размеры по популярным соотношениям сторон 4:3, 16:9, если размеры будут не совсем подходящими то брать просто самый большой не смотря на AR.
Собирайте все, что есть — мало ли какое разрешение понадобится, сейчас есть куча «нестандартных» разрешений, мало ли кому что понадобится — да и смысл огрничиваться размером? Выдавать все варианты с возможностью урезать до нужного.
Поддерживаю, у меня, например, два монитора дают разрешение 2560х1024, то есть 10:4 или 20:8. И мне привести 4:3 к такому формату ещё труднее.
Так что собирайте что есть. Можете дополнительно кадрировать под популярные разрешения (1366х768, например), но оригинал тоже оставляйте.
p0is0n Вы про нагрузку на сервера подумали? пользователь не будет ждать, пока несчастная ВПСка, загруженная стопицот пользователей отресайзит Вашу 10 мегапиксельную обоину до 320х240.
Можно предложить пользователю выбрать соотношение сторон перед загрузкой, если изображение не соответствует заданному соотношению, показать диалог обрезки.
не стоит упрощать, разные отношения сторон — это разные изображения. часто обои делают так что по границе идет что-то важное, да и просто фотографии в нормальном разрешении кадрируются плохо.
Надо собирать все по максимум и хранить на сервере, далее дать возможность человеку выбрать из стандартных разрешений, либо указать то, которое ему нужно. Если обрезать ничего не надо, достаточно просто выдать масштабированную картинку, если же надо обрезать, показывайте html5 или flash резалку, чтобы пользователь отрезал сам. Масштабированные изображения лучше кешировать прямо на сервере, если проект крупный.
Не думаю, что кто-то кроме вас самих сможет что-либо посоветовать в этой задаче, т.к. есть параметры, известные лишь вам (ценность места, процессорного времени, траффика). К тому же именно у вас есть распределение загрузок по разрешению и соотношению сторон. Лично для меня 16:12 и 16:9 приводятся к 16:10 и вполне естественно выглядят.