Node.js에서 임의의 이미지에서 부드러운 부분을 자동으로 잘라냅니다.
smartcrop-sharp 이라는 라이브러리를 사용합니다.
환경
$ npm i sharp smartcrop-sharp
코드
코드도 간단합니다.
app.js
'use strict';
const fs = require('fs');
const sharp = require('sharp');
const smartcrop = require('smartcrop-sharp');
const main = (input, output, width=500, height=500) => {
const body = fs.readFileSync(input);
return smartcrop.crop(body, { width: width, height: height })
.then(result => {
const crop = result.topCrop;
return sharp(body)
.extract({ width: crop.width, height: crop.height, left: crop.x, top: crop.y })
.resize(width, height)
.toFile(output);
});
}
//実行
main('./input.png', './output.png').then();
결과
이런 느낌이 들었습니다. 이미지는 twilio 로고를 흉내내 쓴 사람입니다.
원본 이미지
↓
반환 후 이미지
여백을 좋은 느낌으로 자르고있어, 상당히 좋은 인상입니다.
Node.js만으로 화상 처리를 할 수 있는 것이 좋네요. 안의 알고리즘은 전혀 파악하고 있지 않지만 사용하는 분에는 즐거울 것 같습니다.
Reference
이 문제에 관하여(Node.js에서 임의의 이미지에서 부드러운 부분을 자동으로 잘라냅니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/n0bisuke/items/2b374b792ebbbea28ded텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)