웹서버를 위한 이미지(png, jpg) 압축 프로그램

블로그를 직접 운영하다보니 가장 걱정되는 것은 이미지 때문에 발생하는 많은 트래픽입니다. 네이버 블로그나 티스토리를 사용할 땐 고화질의 원본 사진을 올리는 것을 중요시 생각했는데, 직접 운영해보니 정말 못된 생각이었네요. 물론 티스토리 같은 서비스에서도 트레픽을 줄이는 알고리즘을 사용하고 있을 것 같습니다.

사실 저에게 발생하는 트레픽은 크게 문제가 안됩니다. 클라우드 플레어도 사용하고 있고, 트래픽 때문에 돈이 오버되는 일도 거의 없으니까요. 하지만 모바일 데이터를 사용하는 유저나, 블로그가 로딩되는 속도가 느려지는 것 때문에 많은 신경이 쓰였습니다. 실제로 이미지로 인해 로딩이 길어지는 웹사이트에 사용자 참여도가 현저히 떨어지고 이탈률이 많아진다는 결과도 있습니다.

여튼간에 그래서 오늘 날잡고 이미지 용량을 감소시키기 위해서 다양한 방법을 사용해 보았습니다. 웹에서 이미지의 용량을 줄이는 picdiet를 사용했으나 근본적으로 PNG 이미지의 용량을 줄일 수 없었습니다. PNG는 구조상 이미지 용량을 조절할 수 없더군요. 또한 제가 사용하고 싶은 방식으로 사용하기가 불편했습니다. 그래서 직접 프로그램을 만들어 보았습니다.

압축 알고리즘은 제가 만든 것이 아니라 Qt에서 사용되는 라이브러리입니다. 다만 좀 손쉽고 한번에 처리할 수 있도록 만들어 보았습니다. png의 경우는 png 자체로 용량을 줄일 수 없었습니다. 되려 커졌습니다 그래서 png를 jpg로 변환한 다음 다시 png로 변경하는 방식으로 압축을 시도했습니다. 제가 사용하는 동안에는 큰 문제는 없었는데, 이로인해 어떤 문제가 발생할지는 잘 모르겠네요. 먼저 성능을 한번 살펴보도록 하죠.

보다시피 470MB에서 70MB로 줄었습니다. 엄청난 양의 압축이죠!


이미지의 해상도가 떨어지거나 화질이 매우 안좋게 되는게 아닌지 의심스럽습니까?

과연 어떤 사진이 용량이 줄어든 사진인지 한 눈에 알아보실 수 있나요?


프로그램의 레이아웃을 살펴보겠습니다.

  1. ‘선택된 폴더 전체 압축’은 해당 폴더의 png, jpg 사진을 압축합니다. 해당 기능을 사용하면 파일이 바로 압축된 파일로 변경됩니다. 프로그램에서 백업을 제공하지 않으므로 사용자가 직접 원본 이미지를 보관하도록 하십시오. 이 버튼은 중간에 취소할 수 없으며, 하위 디렉터리의 사진은 수정하지 않습니다(실수 방지 차원으로 인함)
  2. ‘이미지 압축’은 단일 이미지 파일을 압축합니다. 이 역시 백업 기능은 제공하지 않습니다.
  3. ‘검색’은 해당 폴더를 포함하여 하위 폴더까지 1MB가 넘는 모든 파일을 검색합니다.
  4. ‘옵션’은 아직 지원하지 않는 기능이며, 차후에 압축률과 디렉터리 압축시 하위 디렉터리를 포함할지, 백업을 진행할 것인지 선택하는 기능을 넣을 예정입니다.

두개의 아이유 사진에서 압축된 사진은 상단에 배치된 사진입니다(직접 받아서 용량을 비교해 보세요) 정말 자세히 보시면 하단의 사진이 좀 더 화사한 느낌을 주죠. 색감을 중요시 하는 바탕화면 같은 사진에는 사용하는 것을 자제하도록 하는게 좋겠습니다 :)

지금 다운로드 해보세요! 윈도우7 이상, 64비트 운영체제에서 사용할 수 있습니다.

Jino Bae
WRITTEN BY

Jino Bae

웹 개발자 지망생
im@baejino.com

comments powered by Disqus