gm은 node.js를 기반으로 하는 이미지 처리 플러그인으로, 이미지 처리 도구인 GraphicsMagick(GM)과 ImageMagick(IM)을 캡슐화하고 generate를 사용하여 호출할 수 있습니다. gm 플러그인은 노드에 기본적으로 설치되지 않습니다. 이를 사용하려면 먼저 "npm install gm -S"를 실행해야 합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, nodejs 버전 16, DELL G3 컴퓨터.
nodejs 이미지 처리 도구용 플러그인인
gm은 무엇입니까
? gm은 Spawn을 사용하여 호출되는 GraphicsMagick(GM) 및 ImageMagick(IM)을 캡슐화합니다.GraphicsMagick(GM) 또는 ImageMagick(IM)은 기본적으로 동일한 기능을 가진 일반적으로 사용되는 두 가지 이미지 처리 도구입니다.
Nodejs 이미지 처리 도구 gm의
사전 설치 소프트웨어를
사용하여GraphicsMagick 또는 ImageMagick을 설치합니다
(gm 플러그인에서 지원하는 IM 소프트웨어는 imagemagickv7.0.X.XX 버전입니다. 다운로드한 IM 버전이 7.1.x인 경우 gm 현재 정식으로 제공되는 버전은 7.1.x), 7.0.x 다운로드 주소는 http://m.downcc.com/d/398765 입니다.
설치하는 동안 ImageMagick을 설치할 때 그림 프레임의 일부를 선택해야 합니다(gm 플러그인은 변환 명령을 호출합니다).
Install gm
npm install gm -S
워터마크 추가
gm을 사용하는 것은 주로 워터마크를 추가하는 데 사용됩니다. nodejs와 함께 제공되는 이미지 모듈은 대부분의 요구 사항을 충족할 수 있지만 워터마크를 추가할 수 없기 때문에 다음 방법에서는 gm을 사용하여 워터마크를 추가합니다.
gm 모듈 로드
const gm = require('gm').subClass({imageMagick: true})
텍스트를 추가할 이미지를 지정
gm(./uploads/pic/test.jpg) //watermark.Stroke를 추가할 이미지를 지정 ("white ") //외부 글꼴 color.fill("white") //내부 글꼴 색상(설정되지 않은 경우 기본값은 검정색) .drawText(50,50,"중국") .write(./uploads/pic/watermark.jpg, 함수(err) { console.log(err) if (!err) console.log('ok'); 그렇지 않으면 console.log(err); });
중국어 글꼴 추가.font
("./ttf/msyh.ttf",60) //글꼴이 있는 폴더 및 글꼴 크기
gm(./uploads/pic/test.jpg) //추가할 그림 지정 the watermark.Stroke(" white") //외부 글꼴 color.fill("white") //내부 글꼴 색상(설정되지 않은 경우 기본값은 검정색) .font("./ttf/msyh.ttf",60) //글꼴 라이브러리가 위치한 폴더와 글꼴 크기.drawText(50,50,"中文China") .write(./uploads/pic/watermark.jpg, 함수(err) { console.log(err) if (!err) console.log('ok'); 그렇지 않으면 console.log(err); });
순간 모듈을 다운로드하려면
날짜 워터마크를 추가하세요
npm install moment
load module
const moment = require('moment');
call
var datetime = moment().format("YYYY-MM-DD HH:mm:ss"); gm(./uploads/pic/test.jpg) //추가할 그림을 지정 watermark.strok("white") //외부 글꼴 color.fill("white") //내부 글꼴 색상(그렇지 않은 경우 기본값은 검정색) 세트) ) .font("./ttf/msyh.ttf",60) //글꼴 라이브러리가 위치한 폴더와 글꼴 크기.drawText(50,50,datetime) .write(./uploads/pic/watermark.jpg, 함수(err) { console.log(err) if (!err) console.log('ok'); 그렇지 않으면 console.log(err); });