본문으로 건너뛰기

JFIF는 JPEG입니다: .jfif 확장자가 바꾸는 것

어색한 것은 여기서 확장자 하나뿐입니다. .jfif 파일은 평범한 JPEG를 담고 있고, JPEG를 읽는 모든 프로그램이 이를 읽습니다. PNG로 변환해도 그림이 더 선명해지지 않는 것은 더 선명하게 만들 것이 남아 있지 않기 때문입니다.

JFIF는 JPEG File Interchange Format의 약자로, JPEG 데이터스트림을 감싸서 서로 다른 프로그램이 픽셀의 의미에 합의하도록 정의한 1990년대 초의 규격입니다. 그 감싸개는 파일 앞부분의 작은 마커 블록, 즉 APP0 마커로, 픽셀 종횡비와 때로는 썸네일을 기록합니다. 그 뒤의 모든 것은 평범한 JPEG입니다.

확장자는 어디서 왔는가

.jfif 확장자는 Windows 시대의 습관입니다. 일부 카메라, 일부 휴대폰, 일부 Windows 프로그램이 JPEG를 이 확장자로 저장하며, 그중 몇몇은 같은 파일 이름을 .jpg로 바꾸면 썸네일을 보여 주지 않습니다. 바이트는 바뀌지 않고 이름만 바뀝니다. 그래서 .jfif 파일을 탭으로 끌어다 놓으면 브라우저가 잘 열고, 확장자에 의존하는 운영체제는 헷갈리는 것입니다.

마커 블록이 실제로 담는 것

마커담는 내용
APP0 (JFIF)버전, 밀도 단위(dpi 또는 dots per cm), 픽셀 종횡비.
APP0 (기타)벤더 전용 블록 — 일부 카메라가 여기에 자체 정보를 씁니다.
APP1 (Exif)카메라 메타데이터: 노출, 날짜, 방향, 때로는 GPS.
그 뒤의 모든 것JPEG 데이터스트림: 양자화 테이블, 허프만 테이블, 압축된 그림.

이 도구는 파일을 변환하는 데 그 블록을 읽을 필요가 없습니다. .jfif는 .jpg와 .jpeg가 있는 것과 같은 허용 목록에 있어서, 변환기는 네 확장자를 하나의 형식으로 취급합니다. 마커를 들여다보는 유일한 곳은 메타데이터 뷰어로, 마커를 읽고 JFIF 1.02, 72 dpi처럼 보고합니다. 또 다른 메타데이터를 제거할 때도 마커는 남기는데, JFIF 블록이 픽셀을 해석하는 방법을 설명하기 때문입니다.

PNG로 변환해서 할 수 있는 것과 없는 것

JPEG는 손실 압축입니다. 저장될 때 일부 디테일이 버려졌고, 다른 어디에도 보관되지 않습니다. 파일을 디코딩하면 살아남은 픽셀을 정확히 되돌려받습니다. 그 픽셀을 PNG로 저장하면 추가 손실 없이 보관됩니다. 따라서 PNG는 JPEG와 똑같아 보이고, PNG는 크기를 위해 무엇도 뭉개지 않으므로 흔히 몇 배 더 커집니다.

마지막 항목이 변환하는 진짜 이유입니다. JPEG을 편집하려고 한다면 PNG에서 작업하세요. 저장만 하면 된다면 JPEG이 이미 더 작습니다.

한계

요약

질문

JFIF를 PNG로 변환하면 이미지가 더 선명해지나요?

아니요. 선명도는 JPEG가 기록될 때 정해졌고, 디코딩은 버려진 디테일을 만들어 낼 수 없습니다. PNG는 디코딩된 결과를 충실히 저장할 뿐, 첫 번째 압축을 되돌리지 않습니다.

.jfif 파일은 이름만 바꾼 .jpg인가요?

사실상 그렇습니다. 앞에 JFIF 헤더 블록이 붙고 일부 소프트웨어가 선호하는 확장자가 붙은 JPEG 데이터스트림입니다. 브라우저와 편집기는 이를 JPEG로 읽으며, 특이한 것은 확장자뿐입니다.

PNG가 JFIF보다 훨씬 큰 이유는 무엇인가요?

JPEG는 손실 압축을 하고 PNG는 하지 않기 때문입니다. PNG는 같은 픽셀을 추가 압축 없이 담으므로, 사진을 PNG로 저장하면 흔히 몇 배 더 커집니다.

이 글의 도구

모든 글