我们经常会遇到服务器上传的图片进行裁剪或者增加logo等等一些操作,在node平台上该如何实现呢?

看到大家都在使用"gm"这个工具,功能很强大,但是在Windows平台上简直就是各种坑啊,我整了一下午虽然解决了一部分问题,但还是选择了另外一款不错的,而且轻量级跨平台比较好的截图模块——images

安装方式   npm install images

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

正如作者所描述的,轻量级、跨平台、jquery风格

我这里仅列出几个我们常用到的几个功能的demo

1. 设置或者获取图片的大小

 第一种:

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

第二种

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

以上两种方式中如果不包含参数将会返回图片的宽度或者高度,size返回的是一个json,{width:,height: },如果包含参数的话,图片将会按照参数设置更改图片大小(还有一个resize()接口也可以设置图片的大小)

2. 绘制一个区域,目前images在这方面功能比较有限,只能画方形。

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

以上代码绘制了一块400*400的红色方块

3. 将logo绘制到图片中,这个还是比较实用的,直接上代码

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

4. 截取图片的一部分,这个功能及其有用,尤其是截取用户头像的时候,非常有意义

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

这就是这个工具的几个比较常用的一些功能,虽然相比gm少了很多,但是足够满足我们的大部分的基本需求了。

node上截取图片工具 images(node-images)的更多相关文章

  1. Node.js umei图片批量下载Node.js爬虫1.00

    这个爬虫在abaike爬虫的基础上改改图片路径和下一页路径就出来了,代码如下: //====================================================== // ...

  2. Node.js aitaotu图片批量下载Node.js爬虫1.00版

    即使是https网页,解析的方式也不是一致的,需要多试试. 代码: //====================================================== // aitaot ...

  3. Node.js abaike图片批量下载Node.js爬虫1.01版

    //====================================================== // abaike图片批量下载Node.js爬虫1.01 // 1.01 修正了输出目 ...

  4. Node.js abaike图片批量下载Node.js爬虫1.00版

    这个与前作的差别在于地址的不规律性,需要找到下一页的地址再爬过去找. //====================================================== // abaik ...

  5. node平台截取图片模块——jimp

    前几天介绍了一个简单的截图模块——iamges,虽然简单,但是功能还是有很多局限的地方. jimp的优势:1.简单,2.支持回调方式和ES6(promise)语法也可以链式调用 3. 丰富的api   ...

  6. 如何用Node编写命令行工具

    0. 命令行工具 当全局安装模块之后,我们可以在控制台下执行指定的命令来运行操作,如果npm一样.我把这样的模块称之为命令行工具模块(如理解有偏颇,欢迎指正) 1.用Node编写命令行工具 在Node ...

  7. kubernetes:用label让pod在指定的node上运行(kubernetes1.18.3)

    一,为什么要为node指定label? 通常scheduler会把pod调度到所有可用的Node,有的情况下我们希望能把 Pod 部署到指定的 Node, 例如: 有的Node上配备了速度更快的SSD ...

  8. 使用express+multer实现node中的图片上传

    使用express+multer实现node中的图片上传 在前端中,我们使用ajax来异步上传图片,使用file-input来上传图片,使用formdata对象来处理图片数据,post到服务器中 在n ...

  9. 如何把前端用ajax发过来的图片传到node上,并且用node保存在oss图片服务器上?

    一:只上传一张图片 1.1:node需要安装的插件,先安好 npm install ali-oss uuid co --save A.ali-oss 用途:aliyun OSS(Object Stor ...

随机推荐

  1. 马克飞象 Markdown 使用和学习

    第三方学习网站 http://sspai.com/25137https://maxiang.io/ 使用工具:有道云笔记 https://note.youdao.com/ 新建时使用Mardown类型 ...

  2. 【7集iCore3基础视频】7-7 Qt5.2.1安装

    Qt5.2.1安装包:http://pan.baidu.com/s/1dFbju0p 密码:yj8j 源视频:http://pan.baidu.com/s/1hsmEyyw 密码:8rm9

  3. Win7 下安装VirtualBox 没有Ubuntu 64bit 选项问题

    参考: win7安装virtualbox遇到的问题 基于VirtualBox虚拟机安装Ubuntu图文教程 问题 在安装VirtualBox之后,选择虚拟机进行安装的时候发现没有Ubuntu 64bi ...

  4. shudupoj2676

    #include<stdio.h> int num,v[100][2],map[10][10]; bool judge(int x,int y,int k) {  int i,j,it,j ...

  5. (转)微信小程序破解IDE

    1.IDE下载 微信web开发者工具,本人是用的windows 10 x64系统,用到以下两个版本的IDE安装工具与一个破解工具包: wechat_web_devtools_0.7.0_x64.exe ...

  6. 使用dbghelp生成dump文件以及事后调试分析

    前言 在产品的实际应用环境中,如果我们的程序在客户那里出现了问题,例如程序异常了,而这个时候的现象又不能还原或者很难还原重现,那么只有使用dump文件来保存程序的当前运行信息,例如调用堆栈等,同时使用 ...

  7. QHash

    #include <QCoreApplication> #include<QHash> #include<QDebug> int main(int argc, ch ...

  8. java 使用map返回多个对象组装

    Object json=JSONObject.fromObject("{}"); List<Object> list = new ArrayList<Object ...

  9. oracle 参考

    create or replace function fun_try(v_name varchar,v_outname out varchar)return varchar2 is Result va ...

  10. c# json TO xml

    using System.IO;using System.Text;using System.Xml.Serialization;using System.Xml;using System.Runti ...