解决NodeJs gm模块报错{ [Error: Command failed: aaЧaaaa ] code: 4, signal: null }

问题:


我在Window 8 系统上 Nodejs平台中使用gm模块处理图片时,如果不安装、安装imageGagick.exe版本不对或安装选项不对时都会报类似于“{ [Error: Command failed: aaЧaaaa ] code: 4, signal: null }”的错。


我这里试了mageMagick-6.2.7-6-Q16-windows-dll.exe和ImageMagick-7.0.0-0-Q8-x64-dll.exe、ImageMagick-7.0.0-0-Q8-x64-static.exe、ImageMagick-7.0.0-0-Q16-x64-dll.exe

4个版本的情况。


注意:后面三个7.0版本安装时必须勾选"Install legacy utilities(e.g. convert)"选项,否则依然会报错,而ImageMagick-6.2.7-6-Q16-windows-dll.exe默认安装即可


另外,ImageMagick-6.9.2-8-Q16-x64-static.exe安装时没有"Install legacy utilities(e.g. convert)"选项,安装完后会报错。


大家可以试试其他版本


下面介绍gm模块使用


1、正确在电脑上安装imageMagick组件

2、npm install gm

3、var gm=require('gm').subClass({ imageMagick : true });

4、压缩原图并生成压缩后的新图

 gm('public/images/chat/abc.jpg')
        .resize(240, 240,'!')  //压缩为240*240     
        .write('public/images/chat/abc_new.jpg', function (err) {
            if (!err)
                console.log('done');
            else
            {
                console.log(err);
            }

        });

5、压缩原图并返回文件流输出到客户端

 gm1('public/images/chat/abc.jpg')
        .resize(240, 240,'!')
        .toBuffer(function(err,data){
            if(!err)
            {
                res.set('Content-Type','image/png');
                res.send(data);
            }
            else
            {
                console.log(err);
            }}
        )
       

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值