最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nodejs圖片處理工具gm用法小結(jié)

 更新時間:2018年12月12日 11:41:46   作者:無名大盜  
這篇文章主要介紹了nodejs圖片處理工具gm用法小結(jié),詳細(xì)的介紹了gm的使用,還有圖片處理的實例,非常具有實用價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在做H5應(yīng)用中,有時候會涉及到一些圖片加工處理的操作,nodejs有一個很好的后臺圖片處理module,就是這里說的gm。gm有官方文檔,但感覺寫得太抽象,反而看不懂了。這里把一些常見的用法寫下,供大家參考。

安裝   

首先要安裝 GraphicsMagick或者ImageMagick,然后

npm install --save gm

GraphicsMagick和ImageMagick的區(qū)別

GraphicsMagick是從ImageMagick中分離出來的,推薦下載ImageMagick

加載GraphicsMagick(大小4.72 MB)

var gm = require('gm')

加載ImageMagick(大小23.8 MB)

var gm = require('gm').subClass({imageMagick: true})// 注意使用的區(qū)別

除了加載有區(qū)別,其他使用方式完全一樣

用法說明

圖片尺寸

gm('img.png')
.size(function (err, size) {
 if (!err)
  console.log(size.width > size.height ? 'wider' : 'taller than you');
});

圖片伸縮

可以只依據(jù)寬、高或者同時將寬高都放縮。

gm("img.png").resize(width)//保持寬高比
gm("img.png").resize(null, height)//保持寬高比
gm("img.png").resize(width, height, '!')//參數(shù)'!'用于忽略寬高比

圖片旋轉(zhuǎn)

將圖片旋轉(zhuǎn)degrees,背景填充color。

gm("img.png").rotate(color, degrees)
gm("img.png").rotate('green', 45)

圖片裁剪

從圖片的(x, y)位置開始,裁剪出一個寬為width,高為height的圖片來。

gm("img.png").crop(width, height, x, y)

圖片拼接(mosaic)

gm()
 .in('-page', '+0+0')
 .in('bg.jpg')
 .in('-page', '+10+20') // location of smallIcon.jpg is x,y -> 10, 20
 .in('smallIcon.jpg')
 .mosaic()
 .write('tesOutput.jpg', function (err) {
  if (err) console.log(err);
 });

圖片合成(compose)

gm()
.command("composite") 
.in("-gravity", "center")
.in(change_image_url)
.in(base_image_url)
.write( output_file, function (err) {
 if (!err) 
  console.log(' hooray! ');
 else
  console.log(err);
});

不太清楚圖片拼接(mosaic)與合成(compose)有什么區(qū)別,gm提供了兩條命令,對于簡單的圖片合成,好像都可以使用。

圖片拼接(append)

gm中使用append也可以實現(xiàn)圖片的拼接,與mosaic、compose不同的是,這里的拼接應(yīng)該是不能覆蓋的。缺省參數(shù)ltr表示拼接方向,布爾變量,true表示從左到右,false表示從上到下,默認(rèn)false。

gm("img.png").append(img [, img, ltr])
gm("img.png").append("another.jpg", "third.gif")//從上到下拼接
gm("img.png").append("another.jpg", "third.gif", true)//從左到右拼接

圖片注釋

在圖片的(x, y)位置繪制文字。

gm("img.png").drawText(10, 50, "from scratch")

創(chuàng)建圖片

gm(200, 400, "#ddff99f3")
.drawText(10, 50, "from scratch")
.write("/path/to/brandNewImg.jpg", function (err) {
 // ...
});

總結(jié)

gm具有強(qiáng)大的圖片處理功能,nodejs還是借助于gm工具來實現(xiàn)的圖片處理,對于需要后臺處理圖片的情形,這個是挺有用的。

gm提供的各個函數(shù)其實可以復(fù)合使用,就是說,先讀取(gm)圖片后,可以先進(jìn)行拼接(mosaic, compose, append),然后裁剪(crop),放縮(resize)到指定大小后,最后才保存(write)下來。

gm的官方文檔感覺過于簡陋,網(wǎng)上的關(guān)于nodejs gm用法的資料也不多,本文將一些基本的用法總結(jié)下來,學(xué)到到新的持續(xù)更新。

另外,歡迎大家總結(jié)nodejs gm資料!

附gm參考資料

node gm github

nodejs gm官方文檔

stackoverflow : How to do composite with gm node.js?

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

新平| SHOW| 平乡县| 新竹市| 肥西县| 滨海县| 贵德县| 蓬安县| 镇远县| 盐城市| 大足县| 修文县| 潢川县| 德钦县| 濮阳市| 陇川县| 郁南县| 中江县| 双柏县| 新化县| 黄平县| 资兴市| 屏东市| 东兰县| 泾川县| 诏安县| 平安县| 牟定县| 全椒县| 长汀县| 呼玛县| 颍上县| 青铜峡市| 巫溪县| 建阳市| 嘉祥县| 虞城县| 军事| 青田县| 普兰店市| 昌宁县|