nodejs图片处理工具gm用法小结

Node.js图片处理工具gm用法小结

简介

GraphicsMagick (GM) 是一个命令行图象处理程序,所以需要在终端下运行,较为麻烦。而 gm 模块就是对 GraphicsMagick 程序进行封装,使其可以通过 Node.js 调用,在 Node.js 中操作图片变得异常方便。

安装

首先,需要在本地安装 GraphicsMagick 或者 ImageMagick。以 Ubuntu 为例,可通过以下命令进行安装:

sudo apt-get install graphicsmagick

接下来,使用 npm 安装 gm 模块:

npm install gm

基本用法

打开图片

打开图片需要使用 gm() 方法,该方法可以接受一张图片的路径作为参数,例如:

var gm = require('gm');
gm('/path/to/image.jpg')

调整大小

调整大小可以使用 resize() 方法,该方法接受参数为需要调整的宽度、高度、以及选项。例如:

gm('/path/to/image.jpg')
.resize(100, 100)
.write('/path/to/resize.jpg', function(err) {
  if (!err) console.log('done');
});

裁剪

裁剪可以使用 crop() 方法,该方法接受参数为需要裁剪的宽度、高度、x 坐标以及 y 坐标。例如:

gm('/path/to/image.jpg')
.crop(100, 100, 0, 0)
.write('/path/to/crop.jpg', function(err) {
  if (!err) console.log('done');
});

变换

变换可以使用 rotate() 方法,该方法接受参数为需要旋转的角度以及背景颜色。例如:

gm('/path/to/image.jpg')
.rotate('green', 45)
.write('/path/to/rotate.jpg', function(err) {
  if (!err) console.log('done');
});

叠加

叠加可以使用 composite() 方法,该方法接受参数为需要叠加的图片路径、以及叠加的位置。例如:

gm('/path/to/image.jpg')
.composite('/path/to/overlay.png', 10, 10)
.write('/path/to/composite.jpg', function(err) {
  if (!err) console.log('done');
});

保存

最后,需要使用 write() 方法来保存处理后的图片,该方法接受参数为保存路径以及回调函数。

示例

以下是两个基于 gm 的示例:

1. 图片水印

gm('/path/to/image.jpg')
.font("Helvetica.ttf", 12)
.drawText(10, 20, "Watermark")
.write('/path/to/watermark.jpg', function (err) {
  if (!err) console.log('done');
});

2. 打马赛克

gm('/path/to/image.jpg')
.region(130, 165, 200, 200)
.blur(30, 5)
.write('/path/to/blur.jpg', function (err) {
  if (!err) console.log('done');
});

结论

gm 是一个非常好用的 Node.js 图片处理模块,可以很方便地进行各种图片操作。需要注意的是,由于其底层使用 GraphicsMagick,因此在使用时需要安装 GraphicsMagick 或者 ImageMagick。同时,由于 gm 模块较为底层,因此需要一定的代码基础。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nodejs图片处理工具gm用法小结 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • npm的lock机制解析

    npm的lock机制解析 概述 npm在安装依赖包时,有两个重要的文件:package.json和package-lock.json。这两个文件的作用是保证每次安装时的依赖包版本一致性。当我们首次安装依赖包时,npm会自动生成一个package-lock.json文件。这个文件描述了所有依赖包的详细信息,包括版本号、依赖关系、下载地址等。当我们下次再次安装依…

    node js 2023年6月8日
    00
  • node.js 用socket实现聊天的示例代码

    下面是讲解“node.js用socket实现聊天的示例代码的完整攻略”。 1.准备工作 首先,我们需要准备node.js环境。你可以在官网上下载对应的安装包,安装完成后,打开命令行工具,输入命令 node -v,如果命令行中输出你的node.js版本号,则说明你已经成功安装node.js环境。如果没有,则需要重新检查安装。 接下来,我们需要安装socket.…

    node js 2023年6月8日
    00
  • nodejs读取本地中文json文件出现乱码解决方法

    这里为大家提供一种解决nodejs读取本地中文json文件乱码的方法。 问题描述 在使用Node.js读取本地JSON文件的时候,如果文件中存在中文字符,有时会出现乱码的问题,即中文字符在程序中无法正常显示。原因是Node.js读取数据时默认编码为UTF-8,而中文JSON文件的编码常为GB2312。 解决方法 为了避免这个问题,我们需要将读取文件时的编码设…

    node js 2023年6月8日
    00
  • node+axios实现服务端文件上传示例

    下面是针对使用node和axios实现服务端文件上传的完整攻略。 1. 安装依赖 在开始代码实现之前,需要先安装一些必要的依赖包。这里我们需要下载express、body-parser和multer这三个包。其中,express用来搭建服务器,body-parser用于解析POST请求中的body,multer用于处理文件上传。 npm install ex…

    node js 2023年6月8日
    00
  • JavaScript实现二叉搜索树

    让我来详细地讲解一下”JavaScript实现二叉搜索树”的攻略。 什么是二叉搜索树 二叉搜索树是一种树型数据结构,其中每个节点最多有两个子节点,且满足以下性质: 左子节点上所有的值都小于该节点的值。 右子节点上所有的值都大于该节点的值。 JavaScript 实现二叉搜索树 1. 创建二叉搜索树节点的类 我们可以用 JavaScript 类的方式来创建二叉…

    node js 2023年6月8日
    00
  • PHP的password_hash()使用实例

    接下来我将详细讲解“PHP的password_hash()使用实例”的完整攻略,包括它的基本介绍、用法、示例说明等。 1. 基本介绍 password_hash() 是 PHP 5.5 引入的密码哈希函数,用于安全存储密码。它可以将原始密码加密成一个字符串形式,然后将它保存到数据库中。之后可以使用 password_verify() 函数来验证用户提交的密码…

    node js 2023年6月8日
    00
  • Javascript JSQL,SQL无处不在,

    JavaScript JSQL是一种使用JavaScript语言实现的数据库访问接口。它通过封装SQL命令,提供了一种直接使用JavaScript语言进行数据库访问的方式。很多JavaScript的开发者已经在使用JSQL来处理数据库了,本文将讲解如何在项目中使用JSQL,包括连接数据库、创建表和查询数据库等操作。 连接数据库 要使用JSQL,首先需要连接你…

    node js 2023年6月8日
    00
  • js设计模式之代理模式及订阅发布模式实例详解

    JS设计模式之代理模式及订阅发布模式实例详解 代理模式 什么是代理模式? 代理是一种结构型模式,其目的是为其他对象提供一种代理以控制对这个对象的访问。 代理模式可以解决哪些问题? 在程序的开发过程中,我们经常会遇到需要对一个对象进行一些扩展或加强的情况。使用代理模式可以让我们更加方便地实现这一需求,同时它还可以为我们的代码提供一定的解耦和保护机制,帮助我们更…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部