我们经常会遇到服务器上传的图片进行裁剪或者增加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. 【整理】深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

    在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...

  2. openstack-lanch an instance and nova compute log analysis

    1. how to launch an instance: [root@localhost ~(keystone_admin)]# nova flavor-list+----+-----------+ ...

  3. P1041 传染病控制

    #include <bits/stdc++.h> using namespace std; const int maxn = 301; std::vector<int> son ...

  4. PGPool 配置错误定位 s_do_auth: expecting R got E

    自从按照教程 http://www.pgpool.net/docs/latest/pgpool-zh_cn.html#hba配置好PGPool以后,每次启动 pgpool -c -n -D 都报 s_ ...

  5. How to change hostname on SLE

    修改/etc/HOSTNAME文件,在此文件中保存主机名,例如: linuxserv1 然后运行命令设置主机名 # /etc/rc.d/boot.localnet start 方法3. 运行 sysc ...

  6. 纯手写SpringMVC架构,用注解实现springmvc过程

    1.第一步,首先搭建如下架构,其中,annotation中放置自己编写的注解,主要包括service controller qualifier RequestMapping 第二步:完成对应的anno ...

  7. windows + python + dlib

    我试了网上的各种教程,结果都是屁话 pip install dlib

  8. C# MDI子窗体互相操作

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  9. HTML5零基础学习Web前端需要知道哪些?

    HTML零基础学习Web前端网页制作,首先是要掌握一些常用标签的使用和他们的各个属性,常用的标签我总结了一下有以下这些: html:页面的根元素. head:页面的头部标签,是所有头部元素的容器. b ...

  10. Ms sql 2005 中的bit 数据类型

    bit 整型数据 1.0 或 NULL(在表中的表现形式). 注释: 不能对 bit 类型的列使用索引. Microsoft® SQL Server™ 优化用于 bit 列的存储.如果一个表中有不多于 ...