ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이미지 파일 용량 줄이기, 축소했는데 더 커지는 경우가 있다
    외주개발 2026. 10. 21. 08:51
    반응형

    이미지 파일 용량 줄이기를 하는데 축소했더니 파일이 더 커진 적이 있다.

    2495×1528짜리 PNG가 276KB였다. 가로를 1440px로 줄여서 PNG로 저장했더니 362KB가 됐다. 픽셀 수는 3분의 1로 줄었는데 파일은 커졌다.

    같은 그림을 네 가지로 저장해서 재봤다.

    같은 이미지를 네 가지 형식으로 저장한 파일 크기 비교

    JPEG는 85KB다. 원본의 30% 수준이다. 그런데 PNG는 362KB로 원본보다 크다.

    왜 축소했는데 커지나

    PNG는 같은 색이 이어지는 구간을 묶어서 저장한다. 화면 캡처처럼 평평한 면이 넓으면 아주 잘 줄어든다.

    그런데 축소를 하면 픽셀을 섞어서 새 픽셀을 만든다. 경계선 부근에 원래 없던 중간색이 생긴다. 묶을 수 있는 구간이 잘게 쪼개지면서 압축이 안 먹는다.

    축소 후 해상도와 색 모드 확인 결과

    그래서 "축소하면 작아진다"가 항상 맞지는 않는다. 형식에 따라 반대로 간다.

    아래에 이런 걸 적었다

    · 형식을 미리 정하면 안 되는 이유
    · 256색으로 더 줄이는 자리
    · 줄이다 깨진 세 군데
    · 폴더째 돌리는 법

    필요한 데로 내려가면 됨

    형식을 미리 정하지 않는다

    이게 결론이다. PNG로 할지 JPEG로 할지 먼저 정하면 위 같은 일이 난다.

    둘 다 저장해서 작은 쪽을 쓰면 된다. 그림마다 어느 쪽이 유리한지가 다르다.

    사진이 섞이면 JPEG가 압도적이고, 글자와 선만 있는 캡처는 PNG가 이길 때가 있다. 미리 알 방법이 없어서 그냥 둘 다 만든다.

    판단에 쓰는 시간이 저장하는 시간보다 길다. 두 번 저장하고 크기를 비교하는 게 빠르다.

    내 경우 블로그에 올리는 그림이 대부분 화면 캡처인데, 그중에서도 사진이 섞인 건 JPEG가 70%쯤 줄이고 글자만 있는 건 PNG 쪽이 나을 때가 있었다. 같은 폴더 안에서도 갈린다.

    평평한 캡처는 256색으로 더 준다

    색을 256개로 제한하면 한 번 더 줄어든다. 위 그림에서는 175KB가 나왔다.

    JPEG와 256색 PNG 화질 비교

    왼쪽이 JPEG, 오른쪽이 256색이다. 나란히 놓고 봐도 구분이 잘 안 된다.

    UI 캡처나 도표처럼 색이 몇 개 안 쓰이는 그림에서만 통한다. 사진에 쓰면 하늘이 띠처럼 갈라진다.

    확대해야 겨우 보인다

    줄이면 화질이 떨어지는 건 맞다. 문제는 그게 보이냐는 거다.

    원본과 축소본을 확대해서 나란히 비교

    왼쪽이 원본, 오른쪽이 축소본을 같은 배율로 늘린 것이다. 이렇게 확대해서 붙여놔야 차이가 보인다.

    웹에서 보이는 폭은 1000px 남짓이다. 2880px짜리를 그대로 올릴 이유가 없다.

    깨진 자리는 세 군데였다

    검색해도 잘 안 나오는 부분이고, 실제로 당한 것들이다.

    투명 배경 PNG를 JPEG로 바꿨을 때 검게 변하는 비교

    첫째. 투명 배경이 검게 변한다. 왼쪽이 원래 투명한 PNG고 오른쪽이 JPEG로 바꾼 것이다. JPEG에는 투명이라는 개념이 없다. 로고나 아이콘은 PNG로 둬야 한다.

    둘째. 아이폰 사진이 눕는다. HEIC나 아이폰 JPEG는 회전 정보가 파일 안에 따로 들어 있다. 변환할 때 그걸 안 읽으면 돌아간다. 맥 미리보기로는 멀쩡한데 웹에 올리면 누워 있는 게 이 경우다.

    셋째. 원본이 사라진다. 제자리에서 덮어쓰면 되돌릴 방법이 없다. 나는 원본이 없는 상태에서 결과물을 지웠다가 이미지를 통째로 다시 만든 적이 있다.

    도식은 스크립트로 다시 그리면 되는데 캡처는 그때 화면이라 못 만든다. 그 차이를 한 번 겪고 나서 규칙이 생겼다.

    줄이는 작업 자체는 되돌릴 수 있다. 원본만 있으면 다시 하면 된다. 원본을 덮어쓰는 순간부터 되돌릴 수 없는 작업이 된다.

    폴더째 돌린다

    한 장씩 하면 결국 안 하게 된다.

    폴더 하나를 통째로 최적화한 실행 결과

    폴더를 넘기면 전부 축소하고, 형식별로 저장해서 작은 쪽을 고르고, 결과를 별도 폴더에 쌓는다. 위 실행에서는 7장이 70% 줄었다.

    원본 폴더와 결과 폴더가 따로 있는 상태

    원본 폴더는 건드리지 않는다. 결과는 이름 뒤에 표시를 붙여 따로 만든다. 파일명은 그대로 둬야 나중에 어느 게 어느 건지 안다.

    정리

    가로 1440px면 레티나에서도 안 흐리다.

    형식은 미리 정하지 않고 둘 다 만들어 작은 쪽을 쓴다. 축소하면 PNG가 커질 수 있다.

    평평한 캡처는 256색을 한 번 더 시도한다.

    투명 배경은 JPEG로 바꾸지 않는다. 아이폰 사진은 회전을 먼저 적용한다. 원본은 남긴다.

    맥에서 HEIC를 한 줄로 바꾸는 방법은 여기에 적어놨다. 압축이나 PDF까지 같이 다루는 건 이쪽에 정리해놨다.

    나는 362KB를 보고서야 형식을 미리 정하면 안 된다는 걸 알았다.

    반응형
소개 · 연락처 · 개인정보처리방침
운영 프리시 · 상호 앤디 · 대표 손영은 · 사업자등록번호 708-38-01407
경기도 안산시 상록구 해안로 705, 3동 1층 107호 · admin@freesi.net
Designed by Tistory.