이미지 정책
올린 사진을 규격대로 다시 굽는다. 픽셀·바이트 상한, 자동 회전 후 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 가 그대로 있다