node上擷取圖片工具 images(node-images)

向藍天招手發表於2016-06-04

我們經常會遇到伺服器上傳的圖片進行裁剪或者增加logo等等一些操作,在node平臺上該如何實現呢?

看到大家都在使用"gm"這個工具,功能很強大,但是在Windows平臺上簡直就是各種坑啊,我整了一下午雖然解決了一部分問題,但還是選擇了另外一款不錯的,而且輕量級跨平臺比較好的截圖模組——images

 

安裝方式   npm install images  

github地址為https://github.com/zhangyuanwei/node-images

正如作者所描述的,輕量級、跨平臺、jquery風格

我這裡僅列出幾個我們常用到的幾個功能的demo

 

1. 設定或者獲取圖片的大小

 第一種: 

1 var images = require("images");
2 images("image/test.jpg")
3     .size()
4     .save("image/dist.jpg");

 第二種

1 var images = require("images");
2 images("image/test.jpg")
3     .width()
4     .save("image/dist.jpg");

以上兩種方式中如果不包含引數將會返回圖片的寬度或者高度,size返回的是一個json,{width:,height: },如果包含引數的話,圖片將會按照引數設定更改圖片大小(還有一個resize()介面也可以設定圖片的大小)

2. 繪製一個區域,目前images在這方面功能比較有限,只能畫方形。

1 var images = require("images");
2 images(400,400)
3     .fill(255,0,0,0.5)
4     .save("image/dist.jpg");

以上程式碼繪製了一塊400*400的紅色方塊

3. 將logo繪製到圖片中,這個還是比較實用的,直接上程式碼

1 var images = require("images");
2 images("image/test.jpg")
3     .draw(images("image/logo.jpg"),200,200)
4     .save("image/dist.jpg");

4. 擷取圖片的一部分,這個功能及其有用,尤其是擷取使用者頭像的時候,非常有意義

1 var images = require("images");
2 images(images("image/test.jpg"),200,200,500,500)
3     .resize(100)
4     .save("image/dist.jpg");

這就是這個工具的幾個比較常用的一些功能,雖然相比gm少了很多,但是足夠滿足我們的大部分的基本需求了。

相關文章