Node,gm - JPG到PNG转换异常

时间:2016-04-13 17:25:02

标签: node.js image-processing graphics

我试图在ubuntu 14.04 with GraphicsMagick上使用以下代码:

var writeStream = fs.createWriteStream("resized2.png");

gm('Koala.jpg')
 .resize(200,200)
 .autoOrient()
 .setFormat('png')
 .write(writeStream, function(err) {
  if (err) {
    console.log(err);
  }
});

这会导致创建两个文件,请参见下图:

enter image description here

零字节resized2.png和正确大小但名称奇怪的[object object]'文件'。

我尝试了以下,但是,结果相同:

var writeStream = fs.createWriteStream("resized2.jpg");

gm('Koala.jpg')
 .resize(200,200)
 .autoOrient()
 //.setFormat('png')
 .write(writeStream, function(err) {
  if (err) {
    console.log(err);
   }
 });

1 个答案:

答案 0 :(得分:0)

似乎不是期望writeStream gm需要文件名字符串作为write()的第一个参数。 (遗憾的是,我找不到写函数的任何文档)

结果:write需要文件名,writeStreamobject。调用object.toString()并将"[object Object]"作为文件名返回。

同时fs.createWriteStream()创建一个空文件,不执行任何其他操作。

在没有writeStream的情况下尝试这个:

gm('Koala.jpg')
 .resize(200,200)
 .autoOrient()
 .setFormat('png')
 .write('resized2.png', function(err) {
  if (err) {
    console.log(err);
  }
});