HEIC를 JPG로 변환
iPhone 앱과 동일한 네 단계입니다.
픽셀 단위. 비워 두면 원래 크기를 유지합니다. 확대하지 않습니다.
MB 단위. 비워 두면 위 품질을 유지합니다. 맞을 때까지 다시 인코딩하고 도달한 품질을 알려 줍니다.
묶음에 붙일 이름입니다. 번호는 자동으로 붙습니다. 비우면 원래 이름을 유지합니다.
아직 파일을 선택하지 않았습니다.
디코더는 이 탭에서 실행되는 WebAssembly입니다. 사진은 디스크에서 메모리로 읽힐 뿐 서버로 전송되지 않습니다.
온라인 변환 서비스는 모두 같은 문제에 부딪힙니다. 브라우저가 HEIC를 디코딩하지 못하니 디코딩할 수 있는 서버로 사진을 올리는 것이 보통의 답이었습니다. 이 변환기는 다른 길을 택합니다. WebAssembly 디코더와 브라우저에 이미 있는 JPEG 인코더로 전 과정이 로컬에서 끝납니다.
| 프리셋 (Q %) | 4032 × 3024 px 용량 (MB) | 압축비 | PSNR 충실도 (dB) | 색 심도 (bits) | 변환 시간 (s) |
|---|---|---|---|---|---|
| HEIC Source | 2.4 MB | 16:1 | Reference (10-bit) | 10 bits | 0.00 s |
| Maximum (Q = 100%) | 5.8 MB | 7:1 | 46.8 dB | 8 bits | 0.21 s |
| High (Q = 85%) | 3.1 MB | 12:1 | 41.2 dB | 8 bits | 0.18 s |
| Balanced (Q = 70%) | 1.8 MB | 21:1 | 38.4 dB | 8 bits | 0.16 s |
| Small (Q = 50%) | 1.1 MB | 35:1 | 34.6 dB | 8 bits | 0.15 s |
브라우저 내 HEIC 디코딩, JPG 압축 및 EXIF 분석은 어떻게 작동하나요?
기술 공식 및 처리 방식: ISO/IEC 14496-12 ISO-BMFF (hvc1 10-bit Display P3) → libheif WASM 8-bit sRGB RGBA Canvas (W × H × 4 bytes) → 8×8 DCT JPEG quantization Q ∈ [1, 100] (presets Q = 100%, 85%, 70%, 50%; vs lossless PNG DEFLATE 24-bit reference).
실측 계산 예시 (12 MP iPhone 사진): 4032 × 3024 px (12.2 MP) iPhone photo: 2.4 MB .heic → 3.1 MB .jpg at Q = 85%, 41.2 dB PSNR, 0.18 s total local decode + encode time (0 bytes uploaded).
사진을 업로드하지 않고 HEIC를 JPG로 변환할 수 있나요?
변환한 JPG에 촬영 일시가 남나요?
브라우저에서는 남지 않습니다. canvas 인코딩은 픽셀만 만들기 때문에 EXIF가 모두 사라집니다. 날짜를 남기고 위치만 지우는 쪽은 iPhone 앱입니다.
파일 크기를 2MB 이하로 지정할 수 있나요?
목표 크기 설정은 없습니다. 품질을 고르고 결과 크기를 본 뒤 품질이나 긴 쪽 길이를 줄이세요. 긴 쪽을 줄이는 편이 효과가 큽니다.
JPG가 원래 HEIC보다 큰 이유는 무엇인가요?
정상입니다. HEIC가 훨씬 효율적으로 압축하기 때문에 같은 사진이라도 JPEG는 보통 1.5~2배가 됩니다. 크기를 호환성과 맞바꾸는 셈입니다.