如何将图像类型转换为' jpg'在node.js中使用imagemagick

时间:2014-03-10 13:54:11

标签: node.js imagemagick

我在node.js应用中使用imagemagick。我按如下方式调整了图像大小:

im.resize({
        format: 'jpg',
        srcPath: imagePath,
        dstPath: thumbPath,
        width: 220,
        }, function(err, stdout, stderr){
        //some code
       }
});

我希望我的代码将传入的图像转换为jpg。我怎样才能做到这一点?

2 个答案:

答案 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:-'],