Node.js 画像の一部を切り取る(トリミング)には?

ショコラ
ショコラ

Node.js 画像の一部を切り取る(トリミング)には?

パソコンで大量に撮ったスクリーンショットの不要な部分を切り抜く方法です。
スクリーンショットを撮るには、「Windowsキー」と「PrintScreenキー」の同時押しを使うと便利ですよ。今回は、Node.js でいきます。

もっさん先輩
もっさん先輩
  1. フォルダを作成します。
capture

captureフォルダ に入って作業します。

  1. 画像を加工するために、sharpライブラリ をインストールします。
npm install sharp
  1. 試しにスクリーンショットを撮ってトリミングしてみましょう。
const sharp = require('sharp')

let input = `Screenshots\\スクリーンショット (1).png`
let outout = 'page1.png';

//↓の部分を調整します。
const left   = 1147
const right  = 2292
const top    = 0
const bottom = 1440

const width  = right - left
const height = bottom - top

sharp(input).extract({top,left,width,height}).toFile(outout)

↑input、output、left、right、top、bottom を各自調整するように。超簡単です。

  1. 次に複数ページをループで処理する方法です。
const sharp = require('sharp')

const start = 1
const end   = 100

const left   = 1147
const right  = 2292
const top    = 0
const bottom = 1440

const width  = right - left
const height = bottom - top

let page = 0;
for (let n=start; n<=end; n++) {
  let input = `Screenshots\\スクリーンショット (${n}).png`
  page++
  let outout = `output\\page${page}.png`;
  sharp(input).extract({top,left,width,height}).toFile(outout)
}

以上

Scroll to Top