使用node.js中的imagemagick调整图像大小

时间:2012-09-25 12:08:01

标签: node.js imagemagick

在我的应用程序中,我尝试使用imagemagick调整图像大小但是在调整大小时出现以下错误错误:imagesexecvp():没有这样的文件或目录。这是我的代码

   im.resize({
  srcPath:  '/tmp/Images/' + req.files.image.name,
  dstPath: 'resized_'+req.files.image.name ,
  width:42,
  height:42
}, function(err, stdout, stderr){
  if (err) {

      console.log('error while resizing images' + stderr);
  };
});

4 个答案:

答案 0 :(得分:2)

imagemagick模块使用convertidentify命令,您所描述的错误可能会发生,因为无法找到命令。确保命令位于路径环境变量引用的文件夹中,或者您可以在节点应用程序中引用命令:

var im = require('imagemagick');    
im.identify.path = '/opt/ImageMagick/bin/identify'
im.convert.path = '/opt/ImageMagick/bin/convert';

答案 1 :(得分:0)

看起来您正在尝试在不更改目标的情况下调整文件大小。试试这个:

im.resize({
  srcPath:  process.cwd() + '/tmp/Images/' + req.files.image.name,
  dstPath:  process.cwd() + '/tmp/Images/resized_'+req.files.image.name ,
  width:42,
  height:42
}, function(err, stdout, stderr){
  if (err) {
      console.log('error while resizing images' + stderr);
  };
  console.log( process.cwd() + '/tmp/Images/' + req.files.image.name + 'has been resized and saved as ' + process.cwd() + '/tmp/Images/resized_'+req.files.image.name)
});

您还可以检查/tmp/Images/中的权限(ls -l)以确保它们设置正确

答案 2 :(得分:0)

您需要安装imagemagick命令行工具。试试brew install imagemagick

答案 3 :(得分:0)

如果您使用的是ubuntu,请安装以下软件包:

apt-get install imagemagick

之后,再试一次:D