새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다.


온라인에서 이미지의 크기를 줄여주는 많은 사이트들이 있다.
TinyPNG가 가장 잘 알려져있는데, 최근에는 여기서 JPEG도 지원하도록 기능이 추가되었다.

비슷한 기능을 하는 PunyPNG도 있다. 여기는 JPEG, GIF까지도 지원해준다.


그런데, 이런 사이트를 통해 이미지를 압축하려면 내가 가진 이미지를 업로드해야 한다근본적인 문제가 있다.


왜 내 개인 이미지를 온라인에 올려줘야 되지?

그리고, 그 사이트들이 내 이미지를 다른 목적으로 사용하지 않는다는 보장이 있나?


사실, 이 사이트들이 사용하는 알고리듬은 대동소이 아니, 동일하다.

본 블로그에서도 몇 차례 소개한 적이 있던 mozjpeg, ZopfliPNG, pngquant, Gifsicle웹 프론트엔드를 얹은 서비스들이다.


다시 말하면 이 프로그램들을 로컬에서 실행하면 동일한 서비스를 누릴 수 있으며, 업로드 제한 따윈 걱정할 필요도 없는 것이다.



그래서, 이미지를 로컬에서 처리하는 프로그램을 간단히 만들어봤다.

이 프로그램은 JPEG/PNG/GIF 파일들을 주어진 옵션에 따라 압축해준다.


- JPEG는 기본적으로 mozjpeg을 활용하여 최대한 작은 크기로 재압축

  압축 품질을 별도로 지정할 수 있음

  Exif 정보는 물론, 색상 프로파일 정보도 그대로 살려줌

  파일 생성 일자도 그대로 유지

- PNGZopfliPNG로 파일의 크기를 최대한 줄임

  pngquant를 선택하면 8bpp의 PNG 파일[각주:1]을 생성해줌

  각종 메타 정보를 그대로 유지

- GIFGifsicle로 파일 크기 최소화

  단일 프레임 GIF인 경우 8bpp PNG로 추가 저장


이 프로그램은 아래 링크에서 다운받을 수 있다.


iPress v1.7.rar

password: teus.me



덧1. 위에 소개한 페이지들은 별도로 유료 서비스인 Pro 버전을 지원(?)하는데, 눈가리고 아웅이라 생각함


덧2. 이 프로그램은 무조건 폴더 단위로 처리함, 당연히 대상 용량은 무제한




▲ 버전 히스토리


2017.12.24: v1.1

- 최초 릴리즈


2017.12.25: v1.2

- mozjpeg3.3.2로 교체


2018.1.29: v1.2a

- 오류 수정: jpeg에서 Exif를 처리할 때 가끔 죽던 문제 수정

- libpngquant를 2.11.7로 업데이트


2018.11.12: v1.5a

- 오류 수정: jpeg에서 잘못된 Exif를 처리할 때 안정성 보강

- UI 글꼴을 맑은 고딕 9 포인트로 변경

- gif → png 변환시 좀더 효율적으로 처리하도록 수정

- gifsicle을 1.91로 업데이트(Jun 2, 2018 까지 반영)
- mozjpeg 최적화 옵션 제거(사실상 효과 없음)

- mozJPEG libjpeg-turbo-2.0 반영(Nov 12, 2018)
- libpng를 1.6.36.git로 업데이트(Sep 4, 2018)
- zlib 업데이트(Nov 5, 2018) 및 fast-zlib 적용
- libimagequant를 2.12.2로 업데이트 (2018.10.29)


2019.8.20: v1.6

오류 수정: Exif 영역의 크기가 0xffff일 때 Exif가 깨지는 오류 수정

- UI 글꼴을 맑은 고딕 9 포인트로 변경

- libpng를 1.6.37으로 업데이트(Apr 25, 2019) 및 fast-zlib 적용

- libimagequant를 2.12.5로 업데이트 (2019.8.9)

- mozJPEG v4.0.0 업데이트(Aug 13, 2019)


2019.9.19: v1.7

- Exif 처리 기능 보강: 크기가 0xffff 바이트 이상이라 깨지는 경우을 원천적으로 차단, 썸네일 제거 기능 보강 등



  1. pngquant를 사용하며, 이는 TinyPNG에서 사용하는 알고리듬임 [본문으로]
  1. Peri 2018.01.02 03:55

    새해 복 많이 받으세요~!!

    iPress 정말 놀랬습니다... 정말 감사합니다!!

    ■ 한 폴더에 여러 확장자가 있는 경우, 저장 결과물이 jpg, png, gif 등 하나로 설정 할 수 있어으면 좋겠습니다.

    ※ 이미지의 크기가 세로보다 가로의 길이가 더 크면 iPress 가 작동을 중지하며, 오류를 내는것 같습니다. (예. 900x650 등)

    ■ 이미지의 크기가 세로보다 가로의 길이가 더 크면 그림을 반으로 잘라주는 크롭 기능이 있었으면 좋겠습니다. (좌→우, 우→좌)

    PS : 정말 감사합니다! 새해 복 많이 받으세요~

    • 고맙습니다.
      1. 포맷 변환은 현재는 고려하고 있지 않습니다.
      jpg-->png는 파일이 커지고, png-->jpg는 화질 저하가 발생할 수 있기 때문입니다.
      2. 오류가 발생하는 파일들을 블로그 하단 메일 주소로 보내주시면 상세히 검토하겠습니다.
      3. 크롭/리사이즈 등도 현재는 고려하지 않습니다
      4. 말씀하신 크롭 기능은 정확히 용도를 이해하기 어렵네요. 혹시 추가적인 설명이 가능하신가요?

  2. Peri 2018.01.03 04:48

    안녕하세요~

    "새해 복 많이 받으세요! 건강이 제일 입니다!!"

    ■ iPress의 용도에 관해
    대부분 사진을 찍게 되면, 원본으로 보관 하려고 할 것 입니다 (소장의 가치),
    단, 소설 이나 만화 책의 경우. 품질 손실을 감안 하더라도 용량이 줄어들면,
    엄청난 가치를 가지게 될 것 같습니다.

    ■ iPress의 실용에 대해
    iPress라는 프로그램을 본 순간, 수년 전의 comics4PMP 라는 프로그램이
    번뜩 생각이 났습니다. 기존의 거의 모든 Android 및 ios 뷰어에 대응하여 넣는,
    PC 유틸리티의 제작자 분들이 다 사라진 탓도 있어서 그런지. 너무 반가웠습니다.
    iPress를 받고 테스트를 해보고 나서 대 만족을 하였습니다.

    원래 iPress의 목적과 다르게 사용하여서 그런지, 이미지를 반으로 잘라주는
    크롭 기능이라던가, 여러 확장자의 결과물을 다시 한 종류의 확장자로 변환하는
    부분이 너무 절실하게 다가 왔습니다.

    ■ 뷰어 어플들의 한계
    Android 및 ios 뷰어에 이미지를 압축하여 아무리 넣어보려 하더라도,
    기기자체의 용량 및 성능 적인 한계가 있어서
    iPress로 용량을 줄이고, 미리 이미지의 크롭을 하여
    메모리 손실을 크게 줄일 수 있으리라고 생각 했습니다.

    ■ iPress의 테스트
    예를 들어 1200(가로)x800(세로) 와 같은 가로의 길이가 큰 이미지에서는
    오류(강제 종료)가 나왔습니다. (소설 좌우 페이지, 만화 좌우 페이지 png, jpg)

    ※ 용량 부분은 직접 품질을 정할 수가 있어서 정말 만족스로운 결과물을 얻었습니다.
    → 소장중의 소설책과 애장판들의 만화책의 용량이 전체의 30%나 줄었습니다.
    → 책을 구매한 후, 대부분 스켄을 하여 아이패드에 넣고 다닙니다...
    만화책은 주변이 신경쓰이고, 주식이나 프로그램 전문책은 너무나 무겁다 보니
    스켄하는 것이 습관이 되어 버렸네요...

    PS_제 개인적인 "욕심" 을 적어놨네요.. 죄송합니다.
    PS_지금의 iPress 만족합니다...정말 감사합니다.

    ■ 의도치 않으셨겠지만, 저의 iPress의 사용기 였습니다.

    ※ 끝으로, 이제 영하권 이네요... 따듯한 연시 보내시고, 감기 조심하세요~

    • 1. jpeg에서는 일부 경우에 다운되는 문제를 확인해서 수정하였습니다.

      2. png에서는 발견하지 못했습니다.
      혹시 또 발생하면 다시 알려주시기 바랍니다.

      3. 가로가 긴 이미지를 자르는 것은 역시 뭔가 어색하네요.
      만화책 스캔본을 정중앙에서 자르는 게 답이 될 것 같지도 않고요.

  3. Favicon of http://artwork-if.tk BlogIcon Let 2018.04.01 15:37

    끙.. PNG 파일이 약 36MB인데 보통 시간이 얼마나 걸리나요?
    그리고 대상폴더가 같으면 오류를 일으키네요 ㅠㅠ

  4. 2018.04.02 16:05

    비밀댓글입니다

  5. goods 2018.04.02 16:08

    안녕하세요.

    글을 잘 못 올린거 같아 다시올립니다. ㅜ

    나름 인지도가 있는 프로그램이라 생각되는 이미지 뷰어에서 압축후에 무지개빛 노이즈 이미지로 보이는걸 확인하였습니다.

    honeyview3 이라는 프로그램인데

    제가 압축 과정에서 실수를 한게 있을런지요.

    해갈 할 수 있는 방법이 있다면 말씀 부탁드릴께요.

    그럼 수고하세요~
    감사합니다.

  6. 쵝오 2018.04.04 07:50

    업무할 때 사진을 많이 찍어서 활용하는데
    용량을 너무 많이 차지해서 고민 중에 검색하다 이 프로그램을 알게됐네요~!
    기존의 프로그램은 저장품질을 %단위로 떨어뜨려서 93% 이런 식으로 사용했는데,
    이 프로그램에서의 jpgQ는 화질 저하가 없는 알고리즘의 %인가요? 아니면 똑같이 품질저하가 이루어지는 건가요?
    제가 주로 사용하는 프로그램은 포토스케이프 입니다.

  7. 구에츨리 2018.04.04 07:51

    안녕하세요
    혹시 구글에서 오픈소스 알고리즘으로 공개했다는 구에츨리를 적용해보실 예정은 없으신가요?

    http://www.econovill.com/news/articleView.html?idxno=311376
    구글, JPEG 압축률 35%↑ 인코더 공개
    인터넷상에서 ‘속도’가 가장 중요합니다. 구글은 JPEG 포맷 이미지를 35% 더 압축하는 오픈소스 알고리즘 인코더를 최근 공개했습니다. 구글의 JPEG 인코더 ‘구에츨리(Guetzli)’는 JPEG 이미지 파일 크기를 종전보다 35% 줄여줍니다.
    이미지를 변환하지 않고 단순히 용량만 줄이는 기술입니다. 구에츨리는 스위스 독일어로 ‘쿠키‘를 뜻합니다.
    웹사이트 용량이 커지면서 인터넷 로딩 속도가 느려지게 되는데 더 빠르게 인터넷 페이지를 로딩하려면 용량이 줄어들어야 합니다.
    그간 구글은 웹 데이터의 용량감축을 위해 여러 기술을 공개해왔습니다. 구에츨리는 모질라에서 2014년 시작한 ‘모지팩’(Mozjpeg)보다 29~45% 더 우수한 압축효율을 기록합니다.

  8. mozjpeg 2018.04.09 21:00

    안녕하세요
    프로그램 잘 쓰고 있습니다
    mozjpeg 버전과 관련해서 궁금한 것이 있습니다
    https://github.com/mozilla/mozjpeg/releases
    여기에 보니 mozjpeg의 최신 버전이 v3.3.1 인 것 같은데 1.5.3 버전을 사용하시는 이유가 있을까요?
    혹시 mozjpeg 최신 버전 적용이 예정되어 있으실까요?

    • 1. 최신 버전 적용했습니다
      2. mozjpeg의 원본(upstream)인 libjpeg-turbo의 버전과 mozjpeg 자체의 버전을 혼용하다보니 이런 상황이 발생했네요.
      현재 3.3.2가 적용된 상태입니다.

    • mozjpeg 2018.04.10 00:10

      최신 버전이 적용돼 있었군요
      프로그램 잘 사용하겠습니다
      감사합니다

  9. 문의 2018.10.15 18:37

    이미지 프레소를 이용하여 압축을 하는데
    이미지가 압축은 되었으나, 표시가 안됩니다.

    용량은 줄어들었는데 이미지를 클릭하면
    이 파일을 열 수 없습니다.

    라는 메세지가 나오고 아무것도 안됩니다...

    어떤게 문제인가요?

    디카사진과 폰카사진 모두 압축하는데
    jpg 파일입니다.

    어떻게해야 하나요?

  10. 마르코 2018.11.15 01:22

    감사합니다^-^

  11. bori 2018.11.28 15:29

    안녕하세요

    프로그램 정말 잘이용하고 있는데

    pngQuant 로 압축시 .Q 추가로 안붙게 옵션추가해서 업데이트 해주시면 정말 좋을것같아요!

    감사합니다.

  12. 2018.12.19 11:06

    비밀댓글입니다

  13. 행인 2019.02.06 12:42

    감사합니다! 감사합니다 ㅠㅠ

  14. 리카 2019.02.20 00:30

    이미지들 관리에 애 먹고 있었는데 마침 좋은놈이 있네요 ㅋㅋ 감사해요

  15. KCG 2019.04.02 07:08

    관공서에서 사용가능 합니까? freeware???

  16. Favicon of https://omnislog.com BlogIcon blogessay46 2019.04.20 11:40 신고

    방금 사용해 보고 댓글 남깁니다.유용하고 감사드리며, 한가지 부탁드린다면 앞축 된 파일이 소스폴더의 서브폴더로 자동 생성하고 바로 저장되면 편리하겠으며 꼭 별도로 폴더를 지정 할 경우에만 만들고요 ,주로 웹용으로 사용할 이미지이기 때문에 이미지 저작권텍스트(워터마크) 정도를 사전 입력할수 있으면 정말 좋겠습니다. 많이 발전하기를 기원합니다.^^좋은하루 되십시오.

  17. Favicon of https://kkassue.tistory.com BlogIcon GGang'S 2019.06.28 09:21 신고

    iPress 너무 잘 쓰고 있습니다.
    업무 특성상 사진 찍을 일이 많은데, 압축하여 보관할 수 있으니 너무 좋습니다.
    여태껏 1.2a 버전 쓰고 있었는데, 오랜만에 들러보니 업데이트 버전이 있네요.
    업데이트도 해주시고, 이런 좋은 프로그램 만들어주셔서 고맙습니다!
    앞으로도 잘 쓸게요!

  18. Favicon of https://aristoel.tistory.com BlogIcon Elcirania 2020.02.22 04:48 신고

    용량 줄일 PNG 이미지가 너무 많아서 고민하다가 이 프로그램을 찾았어요!
    정말 감사합니다 ㅠㅂㅠ 몇 가지 사소한 아쉬운 점은
    PngQuant로 변환 하면 파일 두 개 생기는데 둘 중에 Q가 붙는 쪽은 파일 날짜가 변환 당시 날짜로 뜨는 것(없는 쪽은 기존 파일과 같은 날짜),
    이미지를 많이 변환 할 때 파일 날짜 같은 메타정보들은 모든 파일 변환 후에 수정 되는 것 같다는 점(피치못할 사정으로 중도 포기하면 다 지우고 다시 변환 시작....)이지만...

    대량 변환 가능하다는 점 앞에서 정말 사소하더라구요!
    이미지 18000장을 한 번에 하지 않고 차근차근 500장씩 커트해서 변환 후 Q없는 파일만 남기는 식으로 변환하고 있습니다. 감사합니다!!!

    • 고맙습니다.
      PngQuant의 날짜는 버그[...]입니다. 시간 되는대로 수정해서 올려두겠습니다.

      메타정보 쪽은... 오류 몇 개를 도저히 잡지 못해 그런 방식으로 동작하도록 우회해서 만든 거라 이해 부탁드립니다...

    • Favicon of https://aristoel.tistory.com BlogIcon Elcirania 2020.02.22 18:30 신고

      그랬군요.......(눈물)
      지금도 정말 감사히 쓰고 있습니다!

      그럼 혹시 PngQuant만 체크해도 이미지가 둘 씩 나오는 것도 원래 그런가요?
      폴더 내 Q검색해서 싹 지우면 되어서 사용엔 별 문제는 없지만 이것도 버그인가 싶어서용
      둘다 체크했을 때 결과도 묘한 점이 있었는데 너무 느려서 계속 zopflipng를 빼고 썼더니 당장 실험을 못하겠네요(프로그램 아직 돌아가는중이에요ㅎㅎㅎㅎ)

    • 음... zopflipng와 pngquant는 목적 자체가 완전히 다릅니다...

      zopflipng는 (블로그 글에도 있듯이) 좀 더 압축률을 올리려는 구글의 시도이고(그럼에도 이미지는 전혀 손실이 없고요), pngquant는 아예 bpp 자체를 8bpp로 떨어뜨리면서도 최대한의 화질을 유지해서 png 파일의 크기를 대폭 줄여주는 방식입니다.
      원본에 비해 약간의 손실이 있기 때문에 선택적으로 사용할 수 있도록 파일을 별도로 생성하는 겁니다.
      더 상세한 내용은 블로그의 글과 링크들을 참고하시는 게 좋을 것 같습니다.

    • 요청하신 내용이 모두 반영된 프로그램을 새 포스팅에 올려두었으니 확인 부탁드립니다.

      https://teus.me/680

+ Recent posts