我们经常会遇到服务器上传的图片进行裁剪或者增加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. c++聪聪看书(低数据版代码)

    聪聪是一个善良可爱.睿智聪慧的好孩子.聪聪喜欢看书,这一天她在看一本书时看到了这样一个问题:给你一个正整数n,你要将它分成若干个自然数Ai的和的形式,并且使得这若干个自然数Ai的乘积尽量大,并输出最大 ...

  2. poj1700-Crossing River(贪心算法)

    一,题意: 只有一艘船,能乘2人,船的运行时间为2人中较多一人的时间,过去后还需一个人把船划回来,问把n个人运到对岸,最少需要多久.二,思路步骤: 想办法先把用时最多的2人,运过去,再把剩下来的人中用 ...

  3. amCharts图表组件

    amCharts提供了JavaScript/HTML5 Charts.Javascript/HTML5 Stock Chart.JavaScript Maps三种图表组件.amCharts图形效果炫丽 ...

  4. mysql防止数据库重复

    通常我们用来判断数据库重复的使用以下方法: $title ='www.111cn.net'; $sql = "Select * from tablename where title='$ti ...

  5. redis3.2新增属性protected mode

    在安装新版redis时(3.2) , 一直出现问题 , 只能本机连接其他机器访问失败 , 后来发现是新版增加了安全机制 在配置文件里可以发现多出了protected-mode这一项 , 如果为yes ...

  6. angular service provider

    关于  angular service factory  provider 方面有很多,我也来写一篇加深下印象 provider 是一切方法的基础,所以功能也最强,provider 用来定义一个可以被 ...

  7. oracle数据库之数组的操作样例

    1.创建bean对象 --创建bean对象 CREATE OR REPLACE TYPE "FM_FLOWCPHDTSWJJIMPBEAN" as object ( wf_no ) ...

  8. DEDE有无缩略图如何调取

    同一样式分开调取 [field:array runphp='yes']@me = (strpos(@me['litpic'],'defaultpic') ? "":"&l ...

  9. Windows Server 2008 R2 主域控制器委派DNS到子域控控制器

    一.实验网络拓扑图: 二.实现目的: 子域控制器的域用户能查询到主域控制器的DNS服务器的A记录,主域控制器的域用户也能查询到子域控制器的DNS服务器的A记录. 标注:此章节不讲解域控和DNS服务器的 ...

  10. Python学习笔记(基本功能的使用)

    整理了以前使用的几个笔记:上传到了github; python_notes 以后在慢慢更新吧: