This piece of code is used to create dynamic images based on the height and width parameters set ..Say localhost:3000/50/50 would give an image of width 50 and height 50..I am using this code I got from github..I have installed imageMagick in my system.
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);
This is the error I get
events.js:72 throw er; // Unhandled 'error' event ^ Error: spawn ENOENT at errnoException (child_process.js:980:11) at Process.ChildProcess._handle.onexit (child_process.js:771:34)
The file nodejs.png exists in the same directory as that of the project.What is is that I am doing wrong?
Problem courtesy of: Prasanna Aarthi
Solution
You need to add this line.. of code after installign imageMagicks in your system
var gm = require('gm').subClass({ imageMagick: true });
This did the trick and it works now..
Solution courtesy of: Prasanna Aarthi
Discussion
Almost certainly you need to install ImageMagic or GraphicsMagic. My guess is that gm
module is just a wrapper around the graphic management command line tools. So when you invokesomething like resize()
node
will try to invoke /usr/bin/convert
which is not found, thus you receive spawn child_process
error.
To install imagemagic you could type sudo apt-get install imagemagic
in Ubuntu.
Discussion courtesy of: exebook
This recipe can be found in it’s original form on Stack Over Flow
.
请您自行验证核实并承担相关的风险与后果!
CoLaBug.com遵循[CC BY-SA 4.0]分享并保持客观立场,本站不承担此类作品侵权行为的直接责任及连带责任。
如您有版权、意见、投诉等问题,请通过[eMail]联系我们处理,如需商业授权请联系原作者/原网站。