#algorithm #image-processing #image-resizing
#алгоритм #обработка изображений #изменение размера изображения
Вопрос:
Cloudinary опубликовал инструмент, который автоматически генерирует точки останова для адаптивных изображений: http://www.responsivebreakpoints.com /
Точки останова и изображения настраиваются с помощью этих ручек:
- Диапазон разрешения (например, от 200 пикселей до 1400 пикселей)
- Минимальная разница в размере файла между каждым изображением
- Максимальное количество создаваемых изображений
- Направление изображения путем обрезки изображения с различными соотношениями сторон
Проблема художественного направления может быть легко решена с помощью интеллектуальных инструментов обрезки и распознавания лиц. Одним из примеров может быть smartcrop.js .
Первые 3 условия дополнительно усложняются:
- Различные форматы изображений будут иметь разное отношение размера файла к размеру изображения.
- В зависимости от самого изображения, оно также будет иметь разное отношение размера файла к размеру изображения.
Единственный способ, который я могу придумать, это сгенерировать несколько точек останова, сгенерировать эти изображения, а затем проверить ограничения, настроить и восстановить по мере необходимости. Однако этот метод грубой силы представляется крайне неэффективным. Существуют ли какие-либо алгоритмы для генерации отзывчивых точек останова (без перебора) с учетом этих условий?
Ответ №1:
Мои мысли о точках:
- Диапазон разрешения (например, от 200 пикселей до 1400 пикселей)
- Минимальная разница в размере файла между каждым изображением
- Максимальное количество создаваемых изображений
Это может быть неверно все время, но я бы предположил, что более высокое разрешение всегда приводит к большему размеру файла. Другими словами, размер файла представляет собой сильную монотонную растущую функцию с параметром image size.
Это может быть неверно для всех алгоритмов сжатия, но довольно хорошее приближение для всех из них.
Исходя из этого предположения, вы можете получить любой размер файла путем двоичного поиска в пространстве размеров изображения. Это означает, что вам не нужно создавать так много разных изображений для удовлетворения ваших потребностей.
Примечание:
Они не позволяют использовать разные форматы изображений для сгенерированных изображений. Таким образом, процесс всегда выполняется только с одним форматом файла.