问题:
我在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);
}}
)