디카 메모리가 부족하다고 풍경을 마음에 담을 순 없다! (업그레이드)

디카 메모리가 부족하다고 풍경을 마음에 담을 순 없다푸른곰 님께서 달아주신 댓글에도 나와있듯이, 이런 프로그램에는 해상도 변경(리샘플링) 기능이 필수다.

사진을 찍을 때는 정신 없이 크게 찍다가 나중에 줄여야되는 상황이야 기본이고, 대부분의 디카 자체가 그리 똑똑하지 않은 편이라 처음부터 해상도를 낮게 잡으면 한없이 구린 화질을 보여주는 것이 현실이기도 하기 때문이다.
(4000x3000으로 찍었다가 640x480으로 리샘플링하는 것이 처음부터 640x480으로 찍는 것보단 화질이 좋음)

리샘플링 기능을 추가한 JPEG Shrinker 2.1을 공개한다.
이 프로그램은 지난번에 올린 1.0에 최소한의 리샘플링 기능 및 최소한의 Exif 수정 기능만 추가한 것이다.

사용자 삽입 이미지

이 프로그램의 특징은 아래와 같다.

1. libjpeg 7.0 외에 어떠한 라이브러리도 사용하지 않아 파일 크기를 최소한으로 유지
2. Lanczos3 resampling(a=3)을 이용한 고화질 리샘플링 기능 제공
3. UPX로 압축하여 파일 크기 최소화 (1.0은 115,200Bytes, 2.1은 117,760 Bytes)
4. Exif 정보 및 생성일자를 그대로 가져오며, Exif에 픽셀 수가 명시된 경우엔 픽셀수 정보 수정

역시 아래 파일을 다운받아 압축을 풀어 사용하면 되며, 역시 별도의 설명은 없다.


덧1. 해상도를 800x600이나 640x480 등으로 많이 줄일 땐 저장 품질을 90 정도는 유지하는 편이 좋다.

덧2. Lanczos 최적화에 하루를 꼬박 사용함. MMX는 안 쓰지만, 최적의 속도를 구현했다고 자부함.

Trackback 1 Comment 3
  1. Favicon of http://www.purengom.com BlogIcon 푸른곰 2009.09.05 18:17 address edit & delete reply

    멋지십니다. 해내셨군요!:)

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2009.09.05 18:25 address edit & delete

      문제가 이놈의 ㅂㅅ같은 Visual C++ 6.0은 리샘플링 시간이 너무 오래 걸린단 겁니다.
      .Net 2003에서 해보니까 대략 1.25배 정도는 빨라지는데, jpeg 라이브러리가 .Net 2003에선 컴파일이 잘 안 되는군요. OTL.

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2009.09.10 07:10 address edit & delete

      2.3으로 업데이트했습니다.

      혹시나 생각이 있으시다면 (굽신굽신) 한 번 써봐줍쇼~