将请求获取数据传入node.js中的graphicsmagick或imagemagick时出错

将请求获取数据传入node.js中的graphicsmagick或imagemagick时出错,node.js,imagemagick,graphicsmagick,Node.js,Imagemagick,Graphicsmagick,我正在更改代码以从http get而不是s3对象获取远程映像,并且在数据方面遇到了一些问题。数据不是空的,看起来确实是一个图像二进制文件-但是我是用错误的流格式还是什么-还是向graphicsmagick构造函数发送了无效的格式 我得到了错误 { [Error: Command failed: identify: unable to open image `����': No such file or directory @ error/blob.c/OpenBlob/2701. identif

我正在更改代码以从http get而不是s3对象获取远程映像,并且在数据方面遇到了一些问题。数据不是空的,看起来确实是一个图像二进制文件-但是我是用错误的流格式还是什么-还是向graphicsmagick构造函数发送了无效的格式

我得到了错误

{ [Error: Command failed: identify: unable to open image `����': No such file or directory @ error/blob.c/OpenBlob/2701.
identify: no decode delegate for this image format `' @ error/constitute.c/ReadImage/501.
] code: 1, signal: null }
使用下面的代码

   var request = require('request');
   var gm = require('gm').subClass({imageMagick: true}); // Enable ImageMagick integration.
   var imageType = require('image-type');

   request('http://c3.diapers.com/images/products/p/PG/PG-418_1z.jpg', function(error, response, body) {

        if (error) {
            console.error('unable to download image ' + err);
            return res.status(404).send('unable to download image ' + err);
        }

        if (!body)
            return res.status(404).send('no body response for image');

        var original = gm(body);
        original.size(function (err, size) {
            if (err) {
                console.error(err);
                return res.status(500).send(err);
            }
            resize_photo(size, targetSize, original, function (err, photo) {
                res.setHeader('Content-Type', 'image/jpeg');
                res.send(photo);
            });
        });

    });

所以问题是数据是以字符串而不是二进制的形式返回的。我必须在请求选项中设置encoding:null,然后它就开始工作了