AVIF를 JPG로: 프로그램이 열어주지 않는 그 이미지
웹사이트에서 이미지를 저장했는데 컴퓨터에 있는 어떤 프로그램도 열지 못합니다. 그게 AVIF입니다. Chrome, Edge, Firefox, Safari는 모두 문제없이 표시하고, 요즘은 대부분의 이미지 CDN이 기본으로 AVIF를 내보내기 때문에 따로 고르지 않았는데도 이 형식이 손에 들어옵니다. 반면 예전 버전의 Photoshop, Windows 사진 뷰어, 인쇄소, 그리고 많은 업로드 양식은 아직도 이 확장자를 받지 않습니다. 파일에 문제가 있는 게 아닙니다. 지금 쓰는 프로그램들이 만들어질 때는 없던 형식으로 도착했을 뿐입니다. JPG는 사실상 어디서나 열리는 유일한 래스터 형식이라서, 변환이야말로 메일로 보내고 인쇄를 맡기고 내가 손댈 수 없는 양식에 올릴 수 있는 이미지로 돌아가는 가장 짧은 길입니다. 아래는 이 변환기가 당신의 파일에 무엇을 하는지에 대한 설명이고, 다른 변환 페이지들이 대개 빼놓는 부분까지 함께 적었습니다.
JPG는 보통 AVIF보다 커집니다
다른 변환기들은 하나같이 파일이 작아진다고 말합니다. 이 변환에서는 그 약속이 사실이 아니고, 확인하기도 쉽습니다. AVIF는 JPEG보다 훨씬 효율이 좋은 코덱이라 같은 그림이라도 JPG가 되면 더 많은 바이트가 필요합니다. 아래는 138 KB짜리 AVIF로 도착한 2000×1500 사진을 저희 서버에서 세 가지 설정으로 모두 변환해 본 결과입니다.
| 설정 | JPG 크기 | AVIF 대비 |
|---|---|---|
| Best quality(최고 품질) | 426 KB | +207% |
| Recommended(권장) | 184 KB | +33% |
| Smallest(가장 작게) | 87 KB | -37% |
두 번째 파일인 1200×900, 겨우 21 KB짜리 AVIF도 흐름은 같았고 폭은 더 컸습니다. +285%, +55%, Smallest에서도 여전히 +4%였습니다. 원본 AVIF가 잘 인코딩되어 있을수록 어떤 JPG도 그보다 작아질 가능성은 낮아집니다. 여기서 변환하는 이유는 호환성이지 용량 절약이 아닙니다. 용량을 줄이는 게 진짜 목적이라면 변환한 뒤에 JPG를 압축하거나, 웹에는 AVIF를 그대로 두고 AVIF가 거부되는 곳에서만 JPG를 쓰세요.
사진은 똑바로 나옵니다
휴대폰은 거의 모든 사진을 가로로 저장하고, 어느 쪽으로 돌려야 하는지 알려주는 태그를 함께 붙입니다. 그 태그를 무시하는 변환기에 세로 사진을 넘기면 전부 옆으로 누워서 돌아옵니다. 여기서는 인코딩을 시작하기 전에 태그를 읽어 실제로 회전을 적용하고, 그다음 결과 파일에서 태그를 지웁니다. 두 단계 모두 필요합니다. 태그가 남아 있으면 Chrome, Safari, iOS, Windows 사진이 이미 바로잡힌 사진을 한 번 더 돌려버리고, 사람들이 이유도 모른 채 뒤집힌 사진을 얻는 게 바로 이 때문입니다.
색이 과하게 튀지 않습니다
요즘 휴대폰은 sRGB보다 색 범위가 넓은 Display P3로 촬영합니다. 이 프로파일을 그냥 버리는 것은 변환이 아닙니다. 같은 숫자를 엉뚱한 자로 읽게 두는 것이라서 채도가 높은 색은 전부 과채도로 나옵니다. 피부는 붉어지고 하늘은 네온처럼 됩니다. 기본값에서는 프로파일을 JPG 안으로 그대로 가져갑니다. 받는 쪽이 프로파일을 아예 보지 않는다면, Colour profile(색상 프로파일) 설정이 태그를 버리는 대신 이미지를 제대로 sRGB로 변환해 줍니다.
투명한 부분은 직접 고른 색으로 채워집니다
JPEG에는 알파 채널이 없어서 투명한 배경은 무엇으로든 채워야 합니다. 모서리가 투명한 로고를 대충 만든 변환기에 맡기면 뒤에 검은 사각형이 붙어서 돌아오는 일이 흔한데, 보기에는 파일이 깨진 것과 똑같습니다. 여기서는 흰색이 기본값이고, 설정 옆의 색상 선택기에서 색상 견본으로든 16진수 코드로든 원하는 색을 지정할 수 있습니다. 투명이 합쳐졌다는 사실은 결과 화면에 표시되므로 배경이 바뀐 것이 나중에 놀랄 일이 되지 않습니다. 채우지 않고 투명을 그대로 남겨야 한다면 AVIF를 PNG로 변환을 쓰세요.
어떤 설정을 고를까
Best quality(최고 품질)는 보관용 사본이나 인쇄로 넘길 파일처럼, 용량이 몇 배가 되어도 상관없는 경우를 위한 설정입니다. Recommended(권장)는 화면에 올라갈 이미지 전부에 대한 정답이고, 일반적인 보기 크기의 사진에서는 손실이 눈에 띄지 않습니다. Smallest(가장 작게)는 메일, 메신저 앱, 그리고 용량 제한이 진짜 제약인 곳을 위한 설정입니다. 마음이 바뀌면 비용 없이 다시 변환하면 됩니다.
파일은 이름이 아니라 내용으로 판별합니다
이름을 바꿔도 안에 든 것은 바뀌지 않는데, 사람들은 파일 이름을 수시로 바꿉니다. 확장자만 .jpg를 달고 있는 AVIF나, 브라우저에서 다른 이름으로 저장한 .avif도 파일 자체의 바이트로 식별해 올바르게 변환합니다. 흑백 AVIF는 흑백 그대로 나옵니다. 움직이는 AVIF는 첫 프레임을 정지 이미지로 내보내고, 결과에 그 사실이 표시됩니다.
여러 장을 변환해도 파일 이름은 그대로
폴더에 든 이미지를 한 번에 변환하면 하나의 ZIP으로 묶여 돌아오고, 파일마다 보낸 그대로의 이름이 유지됩니다. photo.avif는 photo.jpg가 되고, 아랍어, 중국어, 악센트가 붙은 이름도 그대로입니다. 읽을 수 없는 파일이 하나 있다고 전체가 망가지지 않습니다. 그 파일만 건너뛰고 이유와 함께 결과에 이름이 뜨며, 나머지는 정상적으로 변환됩니다. 결과에는 합계 하나가 아니라 파일별 변환 전후 크기도 따로 표시됩니다.
무엇을 얻게 되나요
- AVIF가 나오기 전에 만들어진 프로그램에서도 열리는 JPG
- 방향이 바로잡힌 사진, 방향 태그는 지워져 있어 어떤 뷰어도 다시 돌리지 않습니다
- 넓은 색 영역을 그대로 유지하거나, 원하면 제대로 sRGB로 변환
- 투명한 부분은 직접 고른 색으로 채움, 실수로 검은색이 되는 일 없음
- 시작할 때와 같은 픽셀 크기를 매번 그대로 유지
- 여러 장은 원래 파일 이름 그대로 하나의 ZIP으로 반환
다음은 무엇을 할까요
채우지 말고 투명한 배경을 그대로 두어야 하나요? AVIF를 PNG로 변환은 진짜 알파 채널이 있어서 반투명까지 손상 없이 유지합니다.
JPG는 이미 있는데 메일로 보내기엔 너무 무겁나요? JPEG 압축이 크기는 그대로 둔 채 용량을 줄여 줍니다.
같은 문제, 다른 형식인가요? HEIC를 JPG로 변환이 iPhone에서 벌어지는 똑같은 상황을 처리합니다.