온라인에서 이미지의 크기를 줄여주는 많은 사이트들이 있다. TinyPNG가 가장 잘 알려져있는데, 최근에는 여기서 JPEG도 지원하도록 기능이 추가되었다. 그런데, 이런 사이트를 통해 이미지를 압축하려면 내가 가진 이미지를 업로드해야 한다는 근본적인 문제가 있다. 왜 내 개인 이미지를 온라인에 올려줘야 되지? 그리고, 그 사이트들이 내 이미지를 다른 목적으로 사용하지 않는다는 보장이 있나? 사실, 이 사이트들이 사용하는 알고리즘은 대동소이 아니, 동일하다. 본 블로그에서도 몇번 소개했던 mozjpeg, ZopfliPNG, pngquant, Gifsicle에 웹 프론트엔드를 얹은 서비스들이다. 다시 말하면 이 프로그램들을 로컬에서 실행하면 동일한 서비스를 누릴 수 있으며, 업로드 제한 따윈 걱정할 필요도 ..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 온라인에서 이미지의 크기를 줄여주는 많은 사이트들이 있다. TinyPNG가 가장 잘 알려져있는데, 최근에는 여기서 JPEG도 지원하도록 기능이 추가되었다. 그런데, 이런 사이트를 통해 이미지를 압축하려면 내가 가진 이미지를 업로드해야 한다는 근본적인 문제가 있다. 왜 내 개인 이미지를 온라인에 올려줘야 되지? 그리고, 그 사이트들이 내 이미지를 다른 목적으로 사용하지 않는다는 보장이 있나? 사실, 이 사이트들이 사용하는 알고리즘은 대동소이 아니, 동일하다. 본 블로그에서도 몇번 소개했던 mozjpeg, ZopfliPNG, pngquant, Gifsicle에 웹 프론트엔드를 얹은 서비스들이다. 다시 말하면 이 프로그램들을 로컬에서 실행하면 동일한 서..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 온라인에서 이미지의 크기를 줄여주는 많은 사이트들이 있다. TinyPNG가 가장 잘 알려져있는데, 최근에는 여기서 JPEG도 지원하도록 기능이 추가되었다. 비슷한 기능을 하는 PunyPNG도 있다. 여기는 JPEG, GIF까지도 지원해준다. 그런데, 이런 사이트를 통해 이미지를 압축하려면 내가 가진 이미지를 업로드해야 한다는 근본적인 문제가 있다. 왜 내 개인 이미지를 온라인에 올려줘야 되지? 그리고, 그 사이트들이 내 이미지를 다른 목적으로 사용하지 않는다는 보장이 있나? 사실, 이 사이트들이 사용하는 알고리즘은 대동소이 아니, 동일하다. 본 블로그에서도 몇번 소개했던 mozjpeg, ZopfliPNG, pngquant, Gifsicle에 웹 프..
0. 윈도우 어플에서의 아이콘 크기 윈도우용 아이콘은 파일 하나에 여러 종류의 크기를 담을 수 있으며, 상황에 맞춰 윈도우가 선택한다. 이게 상식이고, 모든 얘기의 시발점이다. 윈도우 98/2000 까지는 4bpp 아이콘을 주로 사용했지만, XP 이후로는 8bpp/32bpp를 기본으로 한다. 현재 4bpp 아이콘은 단순히 하위 호환성을 위해 존재할 뿐 실제 프로젝트에 적용할 필요는 없다고 봐도 무방. 아이콘 파일의 스펙을 보면 가로/세로 크기는 256이 최대이고, 32bpp 까지만 적용이 가능하다. XP 까진 비트맵 포맷만 지원했지만, 비스타 이후는 PNG 포맷도 적용이 가능하다. 1. 실제로 만들어야 하는 아이콘의 크기들 실제 어플리케이션에서 만들어야 하는 아이콘의 크기는 스택오버플로우에 잘 정리되어있..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 온라인에서 이미지의 크기를 줄여주는 많은 사이트들이 있다. TinyPNG가 가장 잘 알려져있는데, 최근에는 여기서 JPEG도 지원하도록 기능이 추가되었다. 비슷한 기능을 하는 PunyPNG도 있다. 여기는 JPEG, GIF까지도 지원해준다. 그런데, 이런 사이트를 통해 이미지를 압축하려면 내가 가진 이미지를 업로드해야 한다는 근본적인 문제가 있다. 왜 내 개인 이미지를 온라인에 올려줘야 되지? 그리고, 그 사이트들이 내 이미지를 다른 목적으로 사용하지 않는다는 보장이 있나? 사실, 이 사이트들이 사용하는 알고리즘은 대동소이 아니, 동일하다. 본 블로그에서도 몇 차례 소개한 적이 있던 mozjpeg, ZopfliPNG, pngquant, Gifsic..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 온라인에서 이미지의 크기를 줄여주는 많은 사이트들이 있다. TinyPNG가 가장 잘 알려져있는데, 최근에는 여기서 JPEG도 지원하도록 기능이 추가되었다. 비슷한 기능을 하는 PunyPNG도 있다. 여기는 JPEG, GIF까지도 지원해준다. 그런데, 이런 사이트를 통해 이미지를 압축하려면 내가 가진 이미지를 업로드해야 한다는 근본적인 문제가 있다. 왜 내 개인 이미지를 온라인에 올려줘야 되지? 그리고, 그 사이트들이 내 이미지를 다른 목적으로 사용하지 않는다는 보장이 있나? 사실, 이 사이트들이 사용하는 알고리즘은 대동소이 아니, 동일하다. 본 블로그에서도 몇 차례 소개한 적이 있던 mozjpeg, ZopfliPNG, pngquant, Gifsic..
새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다. 온라인에서 이미지의 크기를 줄여주는 많은 사이트들이 있다. TinyPNG가 가장 잘 알려져있는데, 최근에는 여기서 JPEG도 지원하도록 기능이 추가되었다. 비슷한 기능을 하는 PunyPNG도 있다. 여기는 JPEG, GIF까지도 지원해준다. 그런데, 이런 사이트를 통해 이미지를 압축하려면 내가 가진 이미지를 업로드해야 한다는 근본적인 문제가 있다. 왜 내 개인 이미지를 온라인에 올려줘야 되지? 그리고, 그 사이트들이 내 이미지를 다른 목적으로 사용하지 않는다는 보장이 있나? 사실, 이 사이트들이 사용하는 알고리즘은 대동소이 아니, 동일하다. 본 블로그에서도 몇 차례 소개한 적이 있던 mozjpeg, ZopfliPNG, pngquant, Gifsic..
2017/03/20 - Google의 Guetzli는 정말로 높은 압축률을 달성한 것일까? 지난 포스팅에서 구글 guetzli와 모질라 mozjpeg의 성능을 간단히 비교해봤다.그런데, 스스로에게 약간 미심쩍은(?) 부분이 있어 추가로 비교를 수행했다. 미심쩍은 부분은 아래와 같았다. 1. libjpeg가 발생시키는 artifact를 줄였다고 하는데, artifact가 없는 인공적인 이미지에서 테스트하면 어떨까2. PSNR 외에 PSNR-HVS-M의 차이는 어떨까3. 다른 사진에서도 지난 포스팅과 비슷한 결과가 나올까4. png 압축의 최고봉인 pngquant와 비교하면 어떨까 그래서 테스트의 범위를 좀 확대해봤다.이미지는 총 5가지에 대해 수행했고, guetzli, mozjpeg 외에 pngquant로..
GIF 포맷은 예전에 비해 사용량이 줄었지만, 여전히 많이 사용되는 포맷이다. 비록 단일 프레임 이미지는 JPEG/PNG에 밀리긴 했지만, 여러 프레임으로 구성된 GIF는 짤방이란 별명으로 널리 사용되고 있다. GIF 포맷의 기본적 특징이자 단점은 256색의 팔레트를 사용한다는 점이다.이로 인한 화질의 저하는 어쩔 수 없는 약점인데, GIF의 특성들을 묘하게 조합해서 트루컬러를 구현하는 방법이 있다. 아래처럼 여러장의 프레임으로 구성하여, 각 프레임에 충분한 투명영역을 지정해서 겹치면 트루컬러 GIF를 얻을 수 있다. 이 이미지의 각 프레임을 추출하면 아래와 같다.무려 29개의 프레임으로 구성된 이미지인 것이다. 모든 프레임을 한 장에 합친 결과는 아래와 같다.
아이들 방학숙제를 도와주는데, 사진첩을 만드는 숙제가 있었다.찍어놓은 사진들은 많은데, 문제는 이 사진들을 비슷한 크기로 인쇄하는 자체가 손이 많이 간다는 것. 그래서 하나 급조해봤다.사진들을 떨어뜨리면 이를 지정된 크기로 설정해서 하안글(정확히는 HML) 파일로 만들어주는 프로그램.긴 변의 길이를 지정한 크기에 맞춰 일정 비율로 줄여서 하안글 파일에 끼워넣어준다. 삽입 가능한 이미지는 JPEG, PNG, GIF의 세 종류.리스트 컨트롤에 떨어뜨린 뒤 파일을 생성한 뒤 하안글에서 읽으면 아래와 같은 화면을 볼 수 있다. 이 프로그램은 아래 링크에서 다운받을 수 있다.
iTrans를 업데이트하면서 이미지의 해상도를 읽어야 할 상황이 생겼다.IJG 및 libpng를 사용하면 되긴 하지만, 고작 해상도 정보 얻자고 라이브러리까지 쓰긴 좀 그래서 간단한 방법을 쓰기로 했다. 간단히(응?) 파일을 뒤져서 해상도 정보를 찾는 것. cplusplus.com에서 관련된 소스를 찾을 수 있었다.그런데, 이 코드에는 사소한 문제들이 있다. - GIF도 포함된 소스인데, 난 GIF는 안 쓰기 때문에 제거 가능 - 파일 크기를 얻기 위해 fseek() 등을 쓰는데, 필요 없음- JPEG 헤더를 읽을 때 EXIF가 앞에 들어있는 경우는 제대로 처리하지 못함- 파일의 형식은 알려주지 않음 아래 코드는 이 내용이 반영된 코드이다. // itype: 1=JPEG 2=PNG bool getImag..
2014/03/08 - 이미지 파일 크기 축소에 대한 단상 이전 글에서 언급했듯, PNG 압축의 대마왕 tinyPNG는 pngquant의 웹 프론트엔드이다.재미있는 건 tinyPNG는 유료 플러그인도 판매되고 있지만, 정작 pngquant는 오픈소스라는 점. - 소스는 github에서 공개되고 있으며, 라이센스는 BSD-like License. - 소스는 C99로 작성되어 있기 때문에 Visual Studio 2013 이상으로만 컴파일 가능함. OTL - 소스는 실행파일/라이브러리 모두 제공함 - 실행파일도 별도로 공개하고 있으며, 윈도우 용은 여기서 받을 수 있음. - Floyd-Steinberg 디더링 여부를 선택할 수 있는데, 안 쓰는 쪽이 좀 더 자연스럽다는 느낌. - 압축 후에 OptiPNG 등..
인터넷 환경이 아무리 빨라지더라도 그 바닥(?) 중요 테마 중 하나는 전송량을 줄이는 것이다.그리고, 전송량 중에서 이미지가 차지하는 비중은 굉장히 높다. 다양한 이미지 포맷이 있지만, 인터넷(특히 웹)에서는 JPEG과 PNG이 압도적으로 많이 쓰인다. JPEG가 1992년, PNG이 1996년에 발표됐으니 20년정도 지났고, 나올만한 기술은 다 나왔다고 봐야 된다. 즉, 이제 두 포맷의 압축률은 거의 한계점이라 보는 것이 정설이다. 많은 사람들이 그런 줄 알았다… 하지만, 현실은 언제나 외계인이 지배하는 법… 1. PNG 압축의 여력이 더 큰 쪽은 PNG이다.기본적으로 PNG은 무손실 압축이기 때문에 전처리를 거의 하지 않는다. 필터링 단계가 있기는 하지만, 큰 영향을 주는 정도는 아니다. PNG 파일..