문서·데이터 라이브러리Document & data libraries

image-crop-bounds-clamp

편집기용 자르기 상자 계산입니다. 경계를 검증하고, 끌기를 페이지 안으로 고정하고, 출력 픽셀을 렌더 전에 예산으로 제한합니다.

GitHub에서 보기View on GitHub

어떤 문제를 푸나The problem

자르기 도구의 버그는 대부분 경계 버그입니다. 상자가 페이지 밖으로 끌려 나가거나, 내보내기가 20,000x20,000 비트맵을 요구합니다. 이 함수들은 포인트 단위로 검증하고 고정하며 비정상적인 래스터 크기는 거부합니다.

이런 분께 맞습니다Who it is for

PDF나 캔버스 편집기에 자르기 기능을 만드는 개발자.

무엇을 하나What it does

  • validateCrop은 복사본을 돌려주거나 RangeError를 던집니다.
  • moveCrop은 이동량을 페이지 안으로 고정합니다.
  • cropPixels(box, ppi, {maxDimension, maxPixels})는 해상도에서 픽셀 크기를 계산하고 예산을 넘으면 거부합니다.
  • 옵션에 null을 줘도 기본값으로 처리합니다.

직접 돌려 본 출력Real output

저장소의 examples 폴더를 실행한 결과입니다.

$ node examples/quickstart.mjs
valid        {"x":100,"y":100,"width":200,"height":150}
drag far     {"x":412,"y":0,"width":200,"height":150} (clamped inside the page)
at 300 dpi   {"width":833,"height":625}
reject       crop off page -> crop outside bounds
reject       absurd output -> pixel budget exceeded

알아둘 한계Limits

  • 회전하지 않은 하나의 좌표계(1인치 72포인트)만 다룹니다. 디코딩, 리샘플링, 회전 변환은 호출자가 먼저 처리해야 합니다.

받아서 쓰기Get it

# 저장소를 받습니다
git clone https://github.com/Kein-chronicle/image-crop-bounds-clamp.git

# Claude Code 스킬로 쓰려면 이 폴더 이름으로 받습니다
git clone https://github.com/Kein-chronicle/image-crop-bounds-clamp.git ~/.claude/skills/bounded-image-crop

정보Info

분류Category
문서·데이터 라이브러리Document & data libraries
형태Type
라이브러리Library
라이선스License
MIT
필요한 것Requires
Node.js 22 이상
저장소Repository
image-crop-bounds-clamp
토픽Topics
image-crop geometry javascript esm pdf canvas validation zero-dependencies

2026-10-18 기준: 저장소의 테스트를 로컬에서 실행해 통과했고, 예제 출력은 저장소의 examples 폴더를 실제로 실행한 결과입니다.

공유하기Share

문자Message 네이버 블로그Naver Blog X Facebook