Home > Web Front-end > JS Tutorial > Let's talk about how Nodejs uses gm and imageMagick to process images

Let's talk about how Nodejs uses gm and imageMagick to process images

青灯夜游
Release: 2022-08-15 19:42:38
forward
2858 people have browsed it

NodejsHow to process images? The following article will introduce to you how Nodejs uses gm and imageMagick to process images. I hope it will be helpful to you!

Let's talk about how Nodejs uses gm and imageMagick to process images

#Recently I am using JS to do fun things and need to process pictures. There are many tutorials on the Internet with various methods, and some methods may not necessarily work. This article will share with you a method verified by the author to use NodeJS to process images.

Installation dependencies

npm i gm
Copy after login

gm is a Node library that provides some JS APIs so that developers can process images. But it relies on GraphicsMagick, or ImageMagick underneath. In fact, gm is the command line for calling those two tools.

In other words, in addition to installing gm, we also need to install either GraphicsMagick or ImageMagick.

ImageMagick

The author is from MacOS and directly chose to install ImageMagick.

Follow the official website command, which only requires 1 line of code (provided you have installed brew on your Mac):

brew install imagemagick --with-webp
Copy after login

Introduce the parameters --with-webp, You can delete it, but if you want to process images in webp format, you must add it.

It is more convenient to use brew. You don’t have to worry about environment variables.

GraphicsMagick

Of course, if you don’t use ImageMagick, you can use GraphicsMagick:

brew install graphicsmagick
Copy after login

Quoting gm

At first I chose to install ImageMagick. When I wrote this, I always got an error:

const gm = require('gm');

gm('图片文件路径').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('输出文件路径', function (err) {
  if (err) {
    return console.log(err);
  } else {
    console.log('success');
  }
});
Copy after login

If you want to use ImageMagick, the above writing is actually wrong. You should write it like this, clearly. Specify that I want to use ImageMagick Tool:

const g = require('gm');
const gm = g.subClass({imageMagick: true});

gm('图片文件路径').crop(width, height, 0, 0).resize(width2, height2).quality(quality).write('输出文件路径', function (err) {
  if (err) {
    return console.log(err);
  } else {
    console.log('success');
  }
});
Copy after login

Other functions

Record the common functions of gm for everyone’s memo:

Note: gm can be called in a chain, which is very fun to write. It reads image files from gm(filename), processes them layer by layer, and finally writes to the file.write(filename, callback).

Zoom image

.resize(width, height)

Crop the picture

.crop(width, height, x, y)

Rotate the picture

.rotate(color, deg)

color is the background color (the background color comes in handy if the deg rotation angle is not a multiple of 90 , just use the format '#ededed')

For more node-related knowledge, please visit: nodejs tutorial!

The above is the detailed content of Let's talk about how Nodejs uses gm and imageMagick to process images. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:juejin.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template