首頁 > web前端 > js教程 > 主體

聊聊Nodejs怎麼用gm和imageMagick來處理圖片

青灯夜游
發布: 2022-08-15 19:42:38
轉載
2789 人瀏覽過

Nodejs怎麼處理圖片?以下這篇文章跟大家介紹一下Nodejs使用gm和imageMagick處理圖片的方法,希望對大家有幫助!

聊聊Nodejs怎麼用gm和imageMagick來處理圖片

最近我在用JS做好玩兒的事情,需要處理圖片。網路上很多教程,各種方法五花八門,某些方法不一定行的通。本文給你分享一個被作者驗證能用的方法,使用NodeJS處理圖片。

安裝依賴

npm i gm
登入後複製

gm是一個Node庫,提供了一些JS API,讓開發者可以處理圖片。但是它底層依賴了GraphicsMagick、要嘛或ImageMagick。其實gm就是呼叫那兩個工具的命令列。

也就是說,除了安裝gm,我們還需要安裝要嘛GraphicsMagick、要嘛ImageMagick。

ImageMagick

作者是MacOS,直接選擇了安裝ImageMagick。

依照官網指令,只需要1行程式碼(前提是你已經在Mac上安裝了brew):

brew install imagemagick --with-webp
登入後複製

介紹一下參數--with-webp,你是可以刪掉的,但如果你希望處理webp格式的圖片,一定要再加上。

用brew比較方便,自己不用擔心環境變數了。

GraphicsMagick

當然,如果不用ImageMagick,想用GraphicsMagick也是完全可以的:

brew install graphicsmagick
登入後複製

引用gm

一開始我選擇了安裝ImageMagick,這麼寫,總是報錯:

const gm = require('gm');

gm('图片文件路径').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('输出文件路径', function (err) {
  if (err) {
    return console.log(err);
  } else {
    console.log('success');
  }
});
登入後複製

如果要用ImageMagick,上面寫法其實是不對的,應該這樣寫,明確指定我要用ImageMagick工具:

const g = require('gm');
const gm = g.subClass({imageMagick: true});

gm('图片文件路径').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('输出文件路径', function (err) {
  if (err) {
    return console.log(err);
  } else {
    console.log('success');
  }
});
登入後複製

其它功能

記錄gm的常用功能,供大家備忘:

注意:gm是可以鍊式呼叫的,寫起來很爽,從gm(filename)讀取圖片文件,一層一層處理,最後寫入檔案.write(filename, callback)。

縮放圖片

#.resize(width, height)

裁切圖片

.crop(width, height, x, y)

##旋轉圖片

.rotate(color, deg)

#color是背景色(如果deg旋轉角度不是90的倍數,背景色就派上用場了,用'#ededed'這種格式就好)

更多node相關知識,請訪問:

nodejs 教程

以上是聊聊Nodejs怎麼用gm和imageMagick來處理圖片的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:juejin.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!