본문으로 건너뛰기

이미지 정책

올린 사진을 규격대로 다시 굽는다. 픽셀·바이트 상한, 자동 회전 후 EXIF·GPS 제거, 썸네일·카드·크게 보기 프리셋, webp·avif·jpeg, 움직이는 이미지 처리, 콘텐츠 해시 파일 이름. sharp 는 소비 앱이 넣는다

npm install @duolabs-deux/unit-image-policy

직접 넣어 보기

원본 크기
×
나올 크기

돌린 뒤 3000×4000 · EXIF·GPS 는 지우고 굽는다

mini 128×128 가운데 자르기 · webp 70

thumb 256×256 가운데 자르기 · webp 72

card 576×768 비율 유지 · webp 75

large 1536×2048 비율 유지 · webp 82

어댑터

id종류설명
sharp실제소비 앱이 sharp 를 주입한다(createSharpEngine(sharp)). 유닛은 sharp 를 의존하지 않는다. 서버(Node) 전용
fake가짜실제 이미지를 읽지 않고 규칙대로 답한다. 테스트·데모용

실패와 소비 앱이 할 일

종류언제할 일
invalid-input빈 파일, 바이트·픽셀 상한 초과, 읽을 수 없는 이미지, 움직이는 이미지를 거부하도록 했을 때, 프리셋 설정이 틀렸을 때메시지를 업로드 칸에 그대로 보인다. 프리셋 오류는 개발 중에 고친다
unexpected실행 환경에 Web Crypto 가 없을 때Node 18 이상에서 돌린다

한도

  • 바이트가 정말 이미지인지(형식 판별·위장 파일)는 보지 않는다. file-inspect 로 먼저 거른다
  • 움직임은 webp 출력으로만 남긴다. 다른 형식 프리셋은 첫 장으로 굽는다
  • 원본을 보관할지는 소비 앱이 정한다. 보관한다면 원본에는 EXIF·GPS 가 그대로 있다

명세