我在node.js应用中使用imagemagick。我按如下方式调整了图像大小:
im.resize({
format: 'jpg',
srcPath: imagePath,
dstPath: thumbPath,
width: 220,
}, function(err, stdout, stderr){
//some code
}
});
我希望我的代码将传入的图像转换为jpg
。我怎样才能做到这一点?
答案 0 :(得分:2)
对于此解决方案,您需要使用easyimage package。这个包运行下来并且需要imagemagick(非常重要)。
$npm install easyimage --save // saved in your package.json
包含在您的代码中:
var easyimg = require('easyimage');
首先,您需要获取原始图像的路径:
tmp_path = 'path/to/image.svg';
现在您更改" tmp_path":
的扩展名tmp_extless = tmp_path.replace('.svg','.png'); //be sure of include "."
因此,tmp_path是原始路径,而tmp_extless是我们未来图像的路径。
现在,easyimage的魔力:
easyimg.convert({src: tmp_path, dst: tmp_extless, quality: 80},
function(err,stdout){
if(stdout){ console.log('stdout', stdout);
//here you can run a script to delete tmp_path
}
}
);
现在,您的新图片位于路径中:tmp_extless。 使用这种方法,您不需要writeFile或readFile。
答案 1 :(得分:1)
您需要writeFileSync
并通过匿名函数管理您的数据。
im.resize({
format: 'jpg',
srcPath: imagePath,
dstPath: thumbPath,
width: 220,
}, function(err, stdout, stderr){
fs.writeFileSync('[filename].jpg', stdout,'binary'); //write the file here
}
});
我相信你还需要调用convert方法。
im.convert(['originalfilename.originalextension', 'jpg:-'],