이미지 자르기 도구
무료 온라인 이미지 자르기—픽셀 단위 정밀 자르기, 모든 작업은 브라우저에서
여기에 이미지를 끌어다 놓거나 클릭해서 파일을 선택하세요
JPG, PNG, WebP, BMP, GIF 지원
이미지 자르기란?
자르기는 이미지에서 사각형 영역을 잘라내고 그 바깥을 모두 버리는 작업입니다. 픽셀을 재샘플링하지 않고도 구도를 바꿀 수 있다는 점에서 가장 오래된 편집 동작 중 하나입니다—4000×3000 사진에서 1000×800 영역을 잘라내면 그 안의 원본 픽셀은 단 하나도 손상되지 않습니다. 이 페이지는 데스크톱 편집기와 똑같은 방식으로 자르기를 제공합니다:미리보기 위에서 선택 영역을 드래그하고, 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에 넘겨 디코딩합니다(제로 카피이며 base64 data URL보다 훨씬 적은 메모리 사용). img.naturalWidth와 naturalHeight가 표준 좌표계가 됩니다—state에 보관되는 모든 X/Y/W/H는 이 픽셀을 단위로 표현됩니다. 미리보기 <img>는 max-width/max-height로 브라우저가 알아서 축소해 그리도록 하고, 로드와 resize가 일어날 때마다 getBoundingClientRect()로 실제 렌더 폭을 잰 뒤 displayScale 비율(렌더 폭/원본 폭)을 저장해 둡니다. 드래그 도중 마우스 이동량을 이 비율로 나누면 화면상의 움직임이 원본 픽셀 단위로 환산되며, 화면에서 얼마나 축소되어 보이든 자르기 사각형이 정확하게 유지됩니다. 자르기 박스 자체는 이미지 위에 절대 위치로 겹쳐진 <div>입니다. 8개의 크기 조절 핸들(네 모서리 + 네 변)은 각각 pointerdown에서 모드('nw', 'n', 'ne', 'e', 'se', 's', 'sw', 'w', 'move')를 발생시킵니다. window 레벨의 pointermove 리스너(pointer events는 마우스와 터치를 모두 지원)는 현재 마우스 위치를 읽고 드래그 시작점과의 차이를 구한 뒤 원본 픽셀로 변환해 사각형의 left/top/right/bottom을 다시 계산합니다. 모서리 드래그는 반대 모서리를 고정점으로 삼고, 변 드래그는 수직인 중앙축을 고정하며, 비율 잠금 상태에서는 주축을 먼저 정한 뒤 나머지를 유도합니다. 매 결과는 이미지 경계 안으로, 최소 변 10 px로 클램프되어 사각형이 뒤집히거나 캔버스 밖으로 빠져나가지 않습니다. 내보내기 단계에서는 두 개의 오프스크린 canvas를 사용합니다. 첫 번째 canvas는 자르기 영역의 원본 크기에 맞춰 만들어집니다. ctx.drawImage(img, sx, sy, sw, sh, 0, 0, sw, sh)의 9-인자 형식을 써서 자르기 영역 픽셀만 끌어옵니다—Chromium과 Firefox 모두 이 작업을 GPU 텍스처 복사로 처리하므로, 출력 크기가 그대로라면 재샘플링이 일어나지 않습니다. 회전이나 반전이 필요하면 두 번째 canvas를 회전 후 크기(90°/270°에서는 가로세로 교환)로 생성하고, context를 중심으로 평행 이동한 다음 ctx.rotate(angle)과 ctx.scale(±1, ±1)로 변환을 적용한 뒤, 자른 canvas를 (-w/2, -h/2) 위치에 그립니다. 마지막으로 canvas.toBlob(mimeType, quality)이 인코딩된 바이트를 Blob으로 돌려주고, URL.createObjectURL()이 이를 다운로드 가능한 URL로 만들어 줍니다. quality는 PNG(무손실)에서는 무시되고, JPEG와 WebP에서는 인코더에 대한 힌트(0–1)로 쓰입니다. 새 자르기 결과가 나오면 이전 Blob URL은 revokeObjectURL로 해제해 디코딩된 픽셀 데이터가 메모리에 계속 남지 않도록 합니다.
- 자르기 좌표(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에서 직접 확인할 수 있습니다:자르거나 다운로드하는 동안 어떤 요청도 발생하지 않습니다.
자르기를 하면 이미지 품질이 떨어지나요?
자르기 자체는 무손실입니다—박스 바깥의 픽셀만 제거되고, 안쪽 픽셀은 그대로 복사됩니다. 품질이 변경되는 경우는 100% 미만의 품질로 JPEG나 WebP로 다시 인코딩하거나 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 중 어떤 형식으로 내보내야 하나요?
스크린샷, UI 목업, 텍스트나 날카로운 선이 들어간 이미지는 PNG(무손실, 용량은 큼). 인쇄용 사진이나 투명도보다 용량이 더 중요한 사진은 JPEG. WebP는 같은 시각 품질에서 JPEG보다 25–35% 작고 투명도까지 지원합니다—대상 사용자가 최신 브라우저를 쓴다면 이쪽을 우선 선택하세요.
자르기를 했는데 파일 크기가 오히려 커지는 이유는?
원본이 이미 강하게 압축된 JPEG였는데 PNG로 내보내면, 무손실 재인코딩이라 결과가 더 커집니다. 원본과 같은 형식(또는 WebP)으로 내보내면 이 문제를 피할 수 있습니다.