我们经常会遇到服务器上传的图片进行裁剪或者增加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少了很多,但是足够满足我们的大部分的基本需求了。
时间: 2024-12-25 02:09:47