Multer 모듈로 이미지 업로드에 성공했다면 서버에 업로드된 이미지 파일 경로을 알수 있다. 이번 글에는 gm 모듈을 사용하여 이미지 리사이징 하는 방법에 대해 알아본다.
설치
노드에서 많이 사용하는 이미지 프로세싱 라이브러리 중 하나인 gm을 설치하자.
$ npm install --save gm
gm 라이브러리를 사용하기 위해서는 GraphicsMagick 이나 ImageMagick 등의 라이브러리를 추가 설치해야한다. GraphicsMagick을 설치한다.
$ sudo apt-get install graphicsmagick
섬네일 이미지
라이브러리 사용법은 매우 간단하다. require('gm')('파일 경로') 를 함수 체인으로 이용하여 이미지 처리를 할수 있다. 썸네일 이미지를 만들고자 하면 thumb() 함수를 이용한다.
gm('image.jpg')
.thumb(100, 100, 'imgs/thumb.jpg', function (err) {
if (err) console.error(err);
else console.log('done - thumb');
});
메타 데이터 제거
이미지 메타정보(EXIF profile data) 제거시에는 noProfile() 함수를 사용한다.
gm('image.jpg')
.noProfile()
.write('noprofile.jpg', function (err) {
if (err) console.error(err);
else console.log('done - noprofile');
});


블러 이미지
blur() 함수로 블러 이미지를 생성할 수 있다.
gm('image.jpg')
.blur(19, 10)
.write('blur.jpg', function (err) {
if (err) console.error(err);
else console.info('done - blur')
});
리사이징
resize(width, height) 함수로 리사이징 한다. 파라매터로 넘겨주는 width와 height중 이미지 비율을 유지할 수 있는 값으로 width나 height 값을 취하여 리사이징한다. 이것은 thumb()이 이미지를 잘라 내는 것과 다른 점이다.
gm('image.jpg')
.resize(100, 200)
.write('100_200.jpg', function (err) {
if (err) console.error(err)
else console.log('done')
});