Обрезка изображений
Бесплатная онлайн-обрезка изображений — обрезайте, поворачивайте и отражайте с попиксельной точностью прямо в браузере
Перетащите изображение сюда или кликните, чтобы выбрать файл
Поддерживаются JPG, PNG, WebP, BMP, GIF
Что такое обрезка изображения?
Обрезка вырезает из изображения прямоугольный фрагмент и отбрасывает всё, что за его пределами. Это одна из старейших операций редактирования: она меняет композицию, не передискретизируя пиксели — фрагмент 1000×800, вырезанный из снимка 4000×3000, сохраняет каждый исходный пиксель внутри этой области в нетронутом виде. Здесь обрезка работает так же, как в настольном редакторе: тяните рамку выделения поверх превью, вводите точные числа в поля X/Y/W/H, фиксируйте соотношение сторон, когда результат должен укладываться в строгий формат (аватар, баннер, фото на документы), и экспортируйте в PNG/JPEG/WebP. Поворот и отражение применяются уже после обрезки, поэтому сохранённый файл сразу получает нужную ориентацию — это важно для печати и для приложений, которые игнорируют EXIF-ориентацию. Всё выполняется в браузере через Canvas — байты изображения никуда не отправляются, личные документы и фотографии остаются на вашем устройстве.
Как пользоваться
Шаги
- Перетащите изображение или кликните, чтобы выбрать его. Подходят JPG/PNG/WebP/BMP/GIF.
- Тяните рамку выделения или хватайте угол / маркер края, чтобы изменить размер. Выберите пресет соотношения сторон, чтобы зафиксировать пропорции.
- Точно настройте X/Y/W/H в полях ввода, когда нужно попиксельное позиционирование.
- При необходимости поверните на 90° или отразите по горизонтали/вертикали — операции применяются к обрезанному результату.
- Выберите PNG, JPEG или WebP, нажмите «Обрезать», затем «Скачать».
Советы
- Фиксируйте соотношение сторон (1:1, 16:9, …) перед загрузкой всего, что станет аватаром или превью — иначе платформа сама вас перекадрирует и ничего не скажет.
- Числа в X/Y/W/H указаны в пикселях оригинала, а не в пикселях экрана. Фото шириной 4000 пикселей сохраняет координаты до 4000 даже при уменьшенном отображении.
- Для фотографий используйте JPEG с качеством 0.85–0.92 и WebP с качеством 0.80–0.90 — выше глаз уже не различит, а размер вырастет. PNG берите для скриншотов, штриховых рисунков и всего с текстом.
Сценарии использования
Технический принцип
Обрезка логически проста — выбрать прямоугольник, скопировать его пиксели, остальное выбросить, — но сделать это хорошо в браузере означает увязать несколько вещей: превью на экране уменьшено относительно оригинала, маркеры тянутся в экранных координатах, а сама обрезка должна происходить в координатах исходного изображения, чтобы не потерять качество. При загрузке файла инструмент оборачивает его в URL.createObjectURL() для получения blob URL и передаёт в HTMLImageElement для декодирования (без копирования, гораздо меньше памяти чем data URL в base64). Натуральные ширина и высота (img.naturalWidth / naturalHeight) становятся каноническим координатным пространством — все X/Y/W/H в состоянии хранятся именно в этих пикселях. Тег <img> с превью использует max-width/max-height, чтобы браузер масштабировал картинку под контейнер; при каждой загрузке и ресайзе мы измеряем отображаемую ширину через getBoundingClientRect() и сохраняем коэффициент displayScale (рендер / оригинал). Дельты мыши при перетаскивании делятся на этот коэффициент, чтобы перевести движение на экране обратно в оригинальные пиксели — именно это держит прямоугольник обрезки точным независимо от того, насколько изображение уменьшено для показа. Сама рамка обрезки — это абсолютно позиционированный <div> поверх изображения. Каждый из её восьми маркеров (четыре угла плюс четыре стороны) на pointerdown задаёт режим ('nw', 'n', 'ne', 'e', 'se', 's', 'sw', 'w' или 'move'); обработчик pointermove на уровне window (pointer events покрывают и мышь, и сенсорный ввод) читает текущую позицию курсора, вычисляет дельту от начала перетаскивания, переводит её в оригинальные пиксели и пересчитывает left/top/right/bottom прямоугольника. Угловые маркеры тянут размер от противоположного угла как якоря; боковые сохраняют перпендикулярную средину; режим с зафиксированным соотношением сначала определяет доминирующую ось и от неё выводит вторую. Каждый результат ограничивается рамками изображения и минимальным размером 10 px — так прямоугольник никогда не выворачивается и не выходит за пределы холста. Экспорт работает на двух офскрин-холстах. Первый получает размер натуральной ширины × высоты обрезки; ctx.drawImage(img, sx, sy, sw, sh, 0, 0, sw, sh) в 9-аргументной форме вытягивает только обрезанный фрагмент — Chromium и Firefox выполняют это как GPU-копирование текстуры, без передискретизации, пока размер назначения совпадает. Если запрошены поворот или отражение, второй холст получает размер по габаритам после поворота (для 90°/270° меняем ширину и высоту местами), контекст сдвигается в его центр, ctx.rotate(angle) и ctx.scale(±1, ±1) применяют преобразование, а обрезанный холст рисуется со смещением (-w/2, -h/2). В завершение canvas.toBlob(mimeType, quality) возвращает закодированные байты как Blob; URL.createObjectURL() превращает его в URL для скачивания. Параметр quality игнорируется для PNG (без потерь) и используется как подсказка кодировщику для JPEG и WebP (0–1). Object URL отозванного блоба освобождается, когда новая обрезка заменяет прежнюю, чтобы декодированные пиксели не висели в памяти.
- Координаты обрезки (X/Y/W/H) указаны в исходных пикселях.
- Вся обработка выполняется через Canvas API в браузере.
- Рамка обрезки представляет собой абсолютно позиционированный div с 8 маркерами.
- Экспорт использует внеэкранные canvas с drawImage (9 аргументов).
- Старые Blob URL явно освобождаются при каждом переходе состояния.
Примеры
Квадратный аватар из портретного фото
Загрузить фото (3024×4032) → Соотношение 1:1 → Тянуть рамку на лицо → W=2000 H=2000 → Формат JPEG, качество 0.9 → Обрезать → СкачатьИзображение Open Graph (1200×630)
Загрузить баннер (1920×1080) → Соотношение 16:9 → Ввести W=1200 H=630 → Тянуть к объекту → Формат WebP, качество 0.85 → Обрезать → СкачатьПревью YouTube (1280×720)
Загрузить кадр → Соотношение 16:9 → W=1280 H=720 → Тянуть к ключевой точке → Формат JPEG, качество 0.9 → Обрезать → СкачатьПовернуть портретный снимок с камеры
Загрузить IMG_4321.jpg → Повернуть вправо на 90° → Соотношение Свободно → оставить весь холст → Формат PNG → Обрезать → Скачать (ориентация зафиксирована в файле)Вырезать фрагмент скриншота
Вставить/загрузить скриншот → Свободное соотношение → Плотная рамка вокруг диалога (например, 740×420) → Формат PNG → Обрезать → Скачать для баг-репортаЧастые вопросы
Мои изображения куда-нибудь загружаются?
Нет. Декодирование, обрезка, поворот и кодирование выполняются через Canvas API прямо в этой вкладке. Можно проверить в DevTools → Network: при обрезке и скачивании не отправляется ни одного запроса.
Снижает ли обрезка качество изображения?
Сама обрезка идёт без потерь — удаляются только пиксели за пределами рамки, внутри они копируются байт в байт. Качество меняется только при повторном кодировании в JPEG или WebP с качеством 100 % или ниже, либо при поворотах на углы, отличные от 90/180/270 (поэтому мы предлагаем только эти три).
Чем это отличается от Photoshop или Lightroom?
У настольных программ возможностей больше (слои, цветокоррекция, пакетная обработка, авто-выделение), но они дольше запускаются, стоят денег и требуют локальной установки. Плюс онлайн-инструмента: открыл браузер — пользуешься. Без установки, без регистрации, для одного кадра обычно быстрее, чем поднимать Photoshop ради одной обрезки. Для пакетной работы или сложного ретуша оставайтесь в PS; для разовой обрезки, фиксации соотношения или подготовки аватарки — здесь быстрее.
А что насчёт обрезки во встроенной галерее телефона?
Обрезка в галерее удобная, но ограниченная: обычно лишь пара фиксированных соотношений, нет ввода пикселей, нельзя сменить формат, имя файла зафиксировано. Когда нужно обрезать под конкретный размер вроде 1200×630 или одновременно перегнать HEIC в JPG, галерея не справится — этот инструмент справится.
Почему значения X/Y/W/H отличаются от того, что я вижу на экране?
Они в исходных пикселях изображения, а не в пикселях экрана. Фото шириной 4000 пикселей, показанное на 800 px, всё равно отчитывается координатами до 4000 — именно их получит ваш редактор или место загрузки.
Есть ли водяной знак на экспортированном изображении?
Нет. Инструмент полностью бесплатный: без водяных знаков, без регистрации, без лимитов. На обрезанный результат не добавляется никакой логотип или ссылка.
Почему я не могу обрезать точно до 1242×2208, если оригинал меньше?
Рамка обрезки не может быть больше изображения — если нужен результат крупнее, картинку сначала придётся отдельно увеличить. При обрезке мы не масштабируем вверх: ближайший сосед и билинейка размывают результат, а нормальным апскейлерам место в отдельном инструменте.
Можно ли зафиксировать произвольное соотношение, которого нет в пресетах?
Введите нужные W и H в числовых полях при «Свободном» соотношении — итоговое отношение задаётся именно ими. Используйте W/H как калькулятор: например, 1080 / 1350 = 0.8 = 4:5.
Можно ли обрезать сразу несколько изображений?
Пакетная обрезка здесь не поддерживается — инструмент рассчитан на точную работу с одним кадром. Для однообразных пакетных обрезок посмотрите в сторону командных утилит вроде ImageMagick или специализированных пакетных редакторов.
Чем поворот здесь отличается от EXIF-ориентации в фото с телефона?
EXIF-ориентация — это метаданные: приложения, которые её уважают, поворачивают изображение при отображении, но пиксели в файле остаются в исходной ориентации. Поворот здесь перерисовывает сами пиксели, поэтому экспортированный файл выглядит правильно в любом просмотрщике, включая принтеры и приложения, игнорирующие EXIF.
В каком формате экспортировать — PNG, JPEG или WebP?
PNG — для скриншотов, UI-мокапов и всего с текстом и резкими краями (без потерь, файл крупнее). JPEG — для фотографий под печать или там, где размер важнее прозрачности. WebP даёт на 25–35% меньшие файлы при том же визуальном качестве и поддерживает прозрачность — берите его, когда аудитория сидит в современных браузерах.
Почему размер файла иногда вырастает после обрезки?
Если исходник уже был сильно сжат в JPEG, а вы экспортируете в PNG, то перекодирование без потерь даст файл крупнее. Чтобы этого избежать, оставайтесь в исходном формате (или возьмите WebP).