Заметки команды о мастерстве, форматах и небольших решениях, стоящих за хорошей круглой обрезкой.
Lanczos повторная дискретизация и почему это важно
Lanczos повторная дискретизация является промышленным стандартом для уменьшения фотографий, используется Adobe Photoshop, ImageMagick, FFmpeg и GIMP. Он работает путём свёртки каждого выходного пикселя с функцией Lanczos (оконный sinc), применённой к окну соседних входных пикселей. Результат является математически оптимальным компромиссом между резкостью и артефактами наложения по сравнению с более простыми альтернативами, такими как nearest-neighbor или bilinear. Этот инструмент использует Lanczos с радиусом 3, соответствующим стандартному значению ImageMagick для уменьшения фотографий. Адаптивная резкость применяется после повторной дискретизации для компенсации естественного смягчения, присущего любой операции уменьшения. Результат выглядит резким при масштабе 100%, соответствуя стандартам веб-публикации. Реализация использует библиотеку pica, которая с 2014 года является эталонной реализацией для Lanczos в JavaScript и используется тысячами веб-приложений.
Алгоритмы сохранения соотношения сторон
Блокировка соотношения сторон предотвращает искажение изображения. Когда включена, изменение одного измерения автоматически обновляет другое для сохранения оригинального соотношения ширины к высоте. Это основа большинства редактирований фотографий, потому что человеческий глаз чувствителен даже к небольшим искажениям лиц, зданий и других узнаваемых форм. Разблокировка соотношения сторон позволяет устанавливать оба измерения свободно, что полезно для рекламных баннеров и других случаев использования, где композиция требует конкретного соотношения, независимого от оригинала. Переключатель "Не увеличивать, если меньше" добавляет уровень безопасности: когда включён, инструмент отказывается увеличивать изображение за пределы его оригинальных размеров, ограничивая вывод родным размером источника. Это предотвращает случайную потерю качества от бессмысленного увеличения, когда изображения смешанных размеров обрабатываются пакетно.
Выбор формата: PNG против JPG против WebP против AVIF
PNG сохраняет каждый пиксель точно как закодирован, используя сжатие DEFLATE без потерь. Идеально для скриншотов, графики с большими областями однородного цвета, логотипов и любых изображений с прозрачностью. JPG использует сжатие с потерями с настраиваемыми параметрами качества (1-100). Файлы обычно в 5-10 раз меньше PNG для фотографий, с потерей качества, невидимой невооружённым глазом при 80-90. WebP, разработанный Google в 2010 году, обеспечивает сжатие класса JPG с лучшим сохранением деталей, поддерживает прозрачность и нативно поддерживается всеми основными браузерами с 2020 года. AVIF, основанный на видеокодеке AV1, производит файлы на 30-50% меньше, чем JPG, при той же визуальной качестве. Компромисс это более длительное время кодирования, особенно на Firefox и старых мобильных устройствах.
Подводные камни увеличения и когда использовать ИИ
Увеличение размеров изображения требует изобретения пикселей, которых не существовало в оригинале. Lanczos повторная дискретизация делает это через интерполяцию из соседних исходных пикселей, производя гладкие, но мягкие результаты. Увеличения 2× обычно приемлемы для фотографий. Увеличения 4× показывают заметное смягчение. Увеличения свыше 4× показывают артефакты размытия, где текстуры, края и детали выглядят неразличимыми. Для увеличения на основе ИИ, которое использует обученные модели машинного обучения для реконструкции правдоподобных деталей из окружающего контекста, используйте специальный инструмент Upscale 2x. Модели ИИ хорошо работают на фотографиях, но всё ещё не могут восстановить детали, которые никогда не были захвачены в источнике, особенно текст и тонкие узоры.
Производительность: где этот инструмент выигрывает, где проигрывает
Инструмент разработан для отдельных изображений до около 25 мегапикселей. Свыше этого размера ограничения памяти браузера на мобильных устройствах могут вызвать сбои. На современном настольном компьютере (Apple M1, 16 GB RAM, Chrome) изменение размера источника 8 MP до 2 MP и кодирование в WebP занимает около 1,25 секунд. Кодирование AVIF того же изображения занимает около 4,5 секунд из-за более вычислительно дорогого кодировщика AV1. На среднем Android-телефоне (Pixel 5) та же операция занимает около 4 секунд для WebP, 12 секунд для AVIF. Инструмент не поддерживает пакетную обработку, один файл за раз. Для пакетной обработки рассмотрите настольные инструменты, такие как ImageOptim или Squoosh CLI, которые могут использовать все ядра CPU.
Конфиденциальность: почему отсутствие загрузки важно
Большинство онлайн-инструментов изменения размера изображений отправляют файл на сервер для обработки. Это создаёт след: временная копия существует в инфраструктуре этой компании, подчиняясь их практикам логирования, политикам хранения и юридическим требованиям их юрисдикции. Этот инструмент обрабатывает всё локально в браузере, используя File API, Canvas API и путь кодирования @jsquash/avif (под лицензией Apache-2.0). Ваш файл не покидает устройство. Откройте DevTools, перейдите на вкладку Network, загрузите и пройдите процесс. Вы не увидите никаких исходящих запросов, несущих изображение. Единственные запросы это начальная загрузка страницы и статические активы, все задокументированы и перечислены в заголовке политики безопасности контента этого сайта.