Как обрезать фото онлайн
Обрезка идёт по картинке в том виде, в каком её видите вы, а не по тому, как пиксели лежат в файле. Для снимка с телефона это принципиально: он хранится в положении матрицы и с пометкой, на сколько повернуть его при показе. Рамка тянется свободно или по одной из четырёх пропорций — 1:1, 4:3, 3:2 и 16:9. Формат результата по умолчанию повторяет исходный, а всё вычисление идёт в браузере.
Коротко о цифрах
- Пропорции
- свободная плюс 1:1, 4:3, 3:2 и 16:9
- Ориентация
- определяется по эффекту, пробником 2×1 с тегом поворота
- Формат вывода
- по умолчанию повторяет исходный: PNG остаётся PNG
- Качество по умолчанию
- 92 для JPEG и WebP, для PNG не применяется
- Прозрачность при выводе в JPEG
- заливается белым, иначе стала бы чёрной
- Где считается
- в браузере, снимок никуда не отправляется
Почему ориентация решает исход
Снимок с любого телефона записывается так, как его увидела матрица, а рядом кладётся тег: повернуть на 90, 180 или 270 градусов при показе. Если обрезать сырые пиксели, рамка ляжет на бок, и вместо лица человек получит вырезанный кусок неба.
Проверять поддержку тега по наличию нужного API бесполезно: браузер может принимать параметр и не применять его. Поэтому проверка идёт по эффекту — декодируется зашитый JPEG размером два на один пиксель с тегом «повернуть на 90 градусов». Вернул один на два — декодеру можно верить; вернул два на один — тег читается из файла вручную и картинка доворачивается на канвасе.
Пропорции и формат вывода
- Пресет пропорций даёт максимальный прямоугольник нужной формы по центру: аватар должен открываться на середине снимка, а не в углу.
- Смена пропорции никогда не увеличивает рамку, только ужимает её вокруг того же центра — иначе рамка выскочила бы за край и прыгнула от курсора.
- Формат по умолчанию наследуется от исходника: PNG остаётся PNG, а не пересохраняется в JPEG с ореолами вокруг букв.
- Качество 92 применяется к JPEG и WebP; для PNG оно игнорируется, потому что сжатие там без потерь.
- Если результат пишется в JPEG, под картинку подкладывается белый фон: альфы у формата нет, и прозрачные области иначе вышли бы чёрными.
Порядок работы
- Загрузите изображение — JPEG, PNG или WebP. Файл остаётся во вкладке браузера.
- Выберите пропорцию или оставьте свободную рамку.
- Двигайте и тяните рамку: она не выходит за края, а её размеры округляются до целых пикселей.
- Задайте формат вывода, если нужен не такой, как у исходника.
- Скачайте результат: рядом видно итоговые ширину и высоту в пикселях.
Частые вопросы
Ухудшит ли обрезка качество снимка?
Пиксели внутри рамки не пересчитываются, но файл кодируется заново. Для PNG это происходит без потерь, для JPEG — ещё один проход квантования; на качестве 92 разницу видно только при сильном увеличении.
Почему рамка не даёт вытянуть её дальше края?
Потому что размеры зажимаются раньше положения: прямоугольник, который одновременно больше картинки и вылезает за неё, накрывает снимок целиком, а не схлопывается в угол и не исчезает.
Что произойдёт с прозрачным PNG, если сохранить его в JPEG?
Прозрачные области станут белыми: под изображение специально подкладывается белый фон. Без этого формат, у которого нет альфа-канала, отдал бы их чёрными пятнами.
Снимок повернулся сам после обрезки — это ошибка?
Нет, это правильное поведение. Результат записывается уже в верном положении и без тега ориентации, поэтому его одинаково покажут и браузер, и старый просмотрщик, который такой тег игнорирует.