Как изменить размер изображения
Под «размером» понимают две разные вещи. Пиксели уменьшаются потолком длинной стороны: 1920, 1280 или 800 — три фиксированных значения, пропорции сохраняются, увеличение не делается никогда. Вес в килобайтах подбирается отдельно: качество ищется бисекцией от 25 до 95 за семь кодирований, а если и на дне файл не уложился — сторона уменьшается до 0,7 от исходной, затем до 0,5, и поиск повторяется.
Коротко о цифрах
- Потолки длинной стороны
- 1920, 1280, 800 px или без ограничения
- Увеличение
- не выполняется никогда
- Уменьшение
- ступенями по половине стороны, последний шаг точно в цель
- Диапазон качества при подборе по весу
- 25–95, семь кодирований
- Запасные круги
- сторона 0,7 и 0,5 от исходной, каждый круг от оригинала
- Цель по весу
- от 50 до 3000 КБ с шагом 50
Пиксели: почему только три значения
Произвольную ширину и высоту инструмент не принимает — только потолок длинной стороны из трёх заготовок. Это сознательное сужение: 1920 закрывает показ на любом экране, 1280 — вставку в документ и письмо, 800 — превью и аватар. Вторая сторона считается из пропорций исходника, поэтому кадр не растянется.
Вверх не масштабируется ничего. Снимок шириной девятьсот пикселей при потолке 1920 останется девятисотпиксельным: дорисовывать несуществующие детали — значит платить байтами за мыло.
Само уменьшение идёт не одним прыжком. Прямая перерисовка из четырёх тысяч пикселей в восемьсот выбирает каждый пятый пиксель и выбрасывает остальные, превращая мелкие детали в шум. Вместо этого сторона делится пополам столько раз, сколько нужно, а последний шаг попадает точно в цель.
Килобайты: подбор под заданный вес
- Цель задаётся от 50 до 3000 КБ с шагом 50.
- Качество ищется бисекцией в диапазоне 25–95: ниже 25 фотография перестаёт быть фотографией, выше 95 файл растёт, а глаз не выигрывает.
- Семь проб сужают этот диапазон до одного шага качества — восьмая уже ничего не уточнит.
- Если и на 25 файл больше цели, начинается второй круг с длинной стороной 0,7 от исходной, затем третий — 0,5. Каждый круг стартует от исходной картинки, а не от результата предыдущего: качество не накладывается на качество.
- JPEG, который и так укладывается в цель, не перекодируется вообще — второй проход квантовал бы уже квантованное и просто смылил бы снимок.
Какой режим выбирать
Если ограничение стоит на стороне получателя — форма принимает не больше пятисот килобайт, — берите режим веса: он либо попадает в потолок, либо честно сообщает, что цель не взята. Если требование к разрешению, вроде «не больше 1920 по длинной стороне», ограничивайте сторону, а качество оставьте фиксированным.
Комбинировать их полезно: сначала потолок стороны, затем цель по весу. Пиксели — самый дешёвый источник байтов, и уменьшение длинной стороны до 1280 обычно экономит больше, чем любое движение ползунка качества при исходном разрешении.
Частые вопросы
Можно ли задать точные ширину и высоту в пикселях?
Нет, задаётся только потолок длинной стороны из трёх значений, а вторая сторона считается из пропорций. Произвольная пара чисел почти всегда означает растяжение, а растянутый кадр никто не просит осознанно.
Почему файл не стал меньше, хотя я выбрал цель по весу?
Скорее всего, он уже был меньше цели: такой JPEG возвращается нетронутым. Второй проход кодирования сжал бы то, что уже сжато, и снимок стал бы мягче без единого выигранного килобайта.
Что будет, если цель по весу недостижима?
Вы получите самый маленький из полученных вариантов и прямое сообщение о том, что потолок не взят. Молча отдать файл больше заданного значит подставить вас в форме, которая его отклонит.
Что уменьшать в первую очередь — качество или пиксели?
Пиксели. Вдвое меньшая сторона — это вчетверо меньше данных для кодировщика, тогда как качество ниже сорока уже заметно квадратами вокруг контрастных границ и мелкого текста.