nodejs包gm的使用

1,105 阅读1分钟

gm是基于node.js的图片处理插件,它封装了图片处理工具GraphicsMagick(GM)和ImageMagick(IM),可使用spawn的方式调用。gm插件不是node默认安装的,需执行“npm install gm -S”进行安装才可使用。

gm是什么

nodejs图片处理工具的插件--gm,它封装了GraphicsMagick(GM)和ImageMagick(IM),它使用spawn的方式调用。

GraphicsMagick(GM) 或 ImageMagick(IM)是两种常用的图片处理工具,功能基本相同,GM是IM的分支。

nodejs图片处理工具gm的使用

前置软件安装

安装GraphicsMagick和ImageMagick

在安装时,安装ImageMagick时一定要要选择画框的部分(gm插件调用的是convert命令)

image.png

  • GraphicsMagick 是一个用来读写、生成超过 90 种图像格式的工具集合,支持包括 TIFF, JPEG, JPEG-2000,PNG, PDF, PhotoCD, SVG, 和 GIF 等图像格式。GraphicsMagick 是基于ImageMagick开发的。

  • GraphicsMagick官网:www.graphicsmagick.org/

  • GraphicsMagick软件地址:sourceforge.net/projects/gr…

sourceforge.net/projects/gr…

GraphicsMagick-1.3.35-Q16-win64-dll.exe

安装gm

npm install gm -S

使用

const glob = require('glob')
const gm = require('gm')


glob('./origin/*.jpg',(err,files)=>{

    console.log(files.length)

    files.forEach((item, index)=>{

        console.log(item, index)

        gm(item).size((err,size)=>{
            console.log('size:', size)
            
            let width = 640
            let height = 400
            if(size.width < size.height){
                width = 400
                height = 640
            }
            gm(item).resize(width, height, '!').write(`./result/${item}`, err=>{
                console.log("err",err,index)
            })
        })



        // .write(`./result/${item}`, ()=>{
            //     console.log('ok', index)
            // })

    })


})


const glob = require("glob");
var gm = require("gm")

const files = glob.sync("pics/*.JPG");
console.log(files, files.length);


files.forEach((file,index)=>{
    gm(file).resize(640,400, '!').write(`dist/${file}`, res=>{
        console.log(index,res)
    })
})