티스토리 뷰
# 무손실 압축
무손실 압축을 하려면 각 이미지 유형을 다르게 처리해야 한다. 그러나 대체로 스크립트를 통해 압축을 자동화 할 수 있다는 장점이 있다.
온라인으로 무손실 압축을 지원하는 서비스 사이트도 많지만 매번 많은 이미지들을 수작업으로 변환하는 일은 번거롭다.
따라서 무료로 배포되는 라이브러리의 명령어들을 이용해 자동화하는 방법을 활용하도록 한다.
파일명 | 프로그램 |
png | pngcrush |
jpeg | mozjpeg |
gif | imagemagick |
# 손실 압축
손실 압축은 특정 이미지 정보를 누락, 즉 손실시켜 파일 크기를 줄이는 방법이다.
예를 들어 사람의 시각은 명암 차이에 민감하지만 채색 차이에 크게 민감하지 않다. 따라서 이미지 색이 비슷한 부분을 하나의 색으로 통일해 그만큼의 정보를 손실시켜도 사용자는 눈치채지 못한다. 손실 압축은 원하는 만큼의 화질을 얻지 못하는 위험이 있으므로 고화질의 사진을 저장해 감상하고 싶다면 손실 압축을 피해야 한다. 하지만 웹상에 게시하고자 한다면 성능과 화질 사이 득실을 따져봐야 한다.
즉, 손실 압축 기법을 잘 활용하면서 사용자의 시각적 경험을 훼손하지 않으면서도 로딩 속도를 눈에 뜨게 향상 시키려면 몇 %까지 손실 압축을 해야 할까?
책에서는 85 ~ 80%정도 품질의 이미지 손실 압축을 권장한다.
이미지 형식에 따라 차이가 있지만 85 ~ 80% 손실 압축은 대부분 손실에 의한 열화 없이 변환되며 100% 품질을 가진 jpeg 파일의 크기를 약 70%까지 줄일 수 있다.
손실 압축을 하려면 기존 이미지 형식을 디코딩한 후 알고리즘에 따라 원하는 화질로 저하시켜 다시 원래 이미지 형식으로 디코딩해야 한다.
이러한 일련의 작업을 ImageMagicK가 지원한다.
convert input.jpg -quality 80 output.png
convert input.png -quality 80 output.jpg