Node.js 将缓冲区对象正确传递到imagemagick库

Node.js 将缓冲区对象正确传递到imagemagick库,node.js,stream,request,imagemagick,imagemagick-convert,Node.js,Stream,Request,Imagemagick,Imagemagick Convert,我正在编写一个应用程序来利用通用图像大小调整工具 让它处理本地文件,尝试用http流更新它 从理论上看,它的resize包装器将接受一个srcData对象,我假设它可能是一个缓冲区对象,但我的应用程序阻塞了 以下是一个简化版本: im = require('imagemagick') request = require('request') sampleImage = "http://www.ibm.com/developerworks/data/library/techarticle/dm-

我正在编写一个应用程序来利用通用图像大小调整工具

让它处理本地文件,尝试用http流更新它

从理论上看,它的
resize
包装器将接受一个
srcData
对象,我假设它可能是一个缓冲区对象,但我的应用程序阻塞了

以下是一个简化版本:

im = require('imagemagick')
request = require('request')

sampleImage = "http://www.ibm.com/developerworks/data/library/techarticle/dm-0504stolze/test_1.jpg"

request.get(sampleImage, (err, res, body) ->

    taskHash = {
        srcPath: "-"
        srcData: body
        dstPath: "-"
        height: 100
    }

    callback = (err, stdout, stderr)->
        if err
            console.error(err)
            process.exit(1)
        console.log(stdout)

    im.resize(taskHash, callback)

)
这是一个错误:

{ [Error: Command failed: convert: no decode delegate for this image format `/var/tmp/magick-37627o1E7kWz7yGaf' @ error/constitute.c/ReadImage/555.
convert: no images defined `-' @ error/convert.c/ConvertImageCommand/3144.
] timedOut: false, killed: false, code: 1, signal: null }
这让我觉得它很难将缓冲区识别为jpg对象。但是,即使我在选项散列中显式地将缓冲区声明为jpg,它仍然会给我相同的错误:

taskHash = {
    srcPath: "-"
    srcData: body
    dstPath: "-"
    format: 'jpg'
    height: 100
}

不确定如何将其作为正确的缓冲区对象传入。

错误消息表示它不知道图像的格式。根据,可以在
srcPath
参数中指定格式,例如
gif:-


查找HTTP响应格式的最佳方法是在
内容类型
标题中,因为它可能不是url的一部分。

前缀
srcPath
起作用,我想
格式
选项只指定输出。