溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Nodejs如何使用gm和imageMagick來處理圖片

發(fā)布時(shí)間:2022-08-16 09:33:31 來源:億速云 閱讀:196 作者:iii 欄目:web開發(fā)

這篇文章主要介紹“Nodejs如何使用gm和imageMagick來處理圖片”的相關(guān)知識(shí),小編通過實(shí)際案例向大家展示操作過程,操作方法簡單快捷,實(shí)用性強(qiáng),希望這篇“Nodejs如何使用gm和imageMagick來處理圖片”文章能幫助大家解決問題。

Nodejs如何使用gm和imageMagick來處理圖片

安裝依賴

npm i gm

gm是一個(gè)Node庫,提供了一些JS API,讓開發(fā)者可以處理圖片。但是它底層依賴了GraphicsMagick、要么或者ImageMagick。其實(shí)gm就是調(diào)用那兩個(gè)工具的命令行。

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

ImageMagick

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

按照官網(wǎng)命令,只需要1行代碼(前提是你已經(jīng)在Mac上安裝了brew):

brew install imagemagick --with-webp

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

用brew比較方便,自己不用操心環(huán)境變量了。

GraphicsMagick

當(dāng)然,如果你不用ImageMagick,想用GraphicsMagick也是完全可以的:

brew install graphicsmagick

引用gm

一開始我選擇了安裝ImageMagick,這么寫,總是報(bào)錯(cuò):

const gm = require('gm');

gm('圖片文件路徑').crop(width, height, 0, 0).resize(width3, height2).quality(quality).write('輸出文件路徑', function (err) {
  if (err) {
    return console.log(err);
  } else {
    console.log('success');
  }
});

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

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

gm('圖片文件路徑').crop(width, height, 0, 0).resize(width3, height2).quality(quality).write('輸出文件路徑', function (err) {
  if (err) {
    return console.log(err);
  } else {
    console.log('success');
  }
});

其它功能

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

注意:gm是可以鏈?zhǔn)秸{(diào)用的,寫起來很爽,從gm(filename)讀取圖片文件,一層一層處理,最后寫入文件.write(filename, callback)。

縮放圖片

.resize(width, height)

裁剪圖片

.crop(width, height, x, y)

旋轉(zhuǎn)圖片

.rotate(color, deg)

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

關(guān)于“Nodejs如何使用gm和imageMagick來處理圖片”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI