节点jsdynamic图像 – 错误

这段代码是用来创build基于高度和宽度参数设置的dynamic图像..说localhost:3000/50/50会给一个宽度50和高度50的图像..我使用这个代码,我从github得到。我在我的系统中安装了imageMagick。

var http = require('http'); var url = require('url'); var fs = require('fs'); var gm = require('gm'); var server = http.createServer(function(request, response){ var url_parts = url.parse(request.url).path.substring(1).split("/"); var width = parseInt(url_parts[0]); var height = parseInt(url_parts[1]); var max = Math.max(width, height); if(!isNaN(width) && !isNaN(height)) { response.writeHead(200, {'content-type': 'image/png'}); gm('nodejs.png'). resize(max, max). crop(width, height, 0, 0). stream(function(err, stdout, stderr){ if(err) { console.log(err) } else { stdout.pipe(response); } }); } else { response.writeHead(400, {'content-type' : 'text/plain'}); response.end(); } }) .listen(3000); 

这是我得到的错误

events.js:72扔呃; //未处理的错误事件^错误:在Process.ChildProcess._handle.onexit(child_process.js:771:34)errnoException(child_process.js:980:11)处产生ENOENT

nodejs.png文件存在于项目所在的同一目录中。我做错了什么?

几乎可以肯定你需要安装ImageMagic或者GraphicsMagic。 我的猜测是, gm模块只是graphicspipe理命令行工具的一个包装。 所以当你调用像resize() node会尝试调用/usr/bin/convert找不到,因此会收到spawn child_process错误。

要安装imagemagic,你可以在Ubuntu中inputsudo apt-get install imagemagic

在系统中安装imageMagick之后,您需要添加这行代码

 var gm = require('gm').subClass({ imageMagick: true }); 

这个伎俩,现在它的作品..