1

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?

1
  • can you please post full error message and find the error line in your code as well? Commented Jan 24, 2014 at 11:47

2 Answers 2

2

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.

Sign up to request clarification or add additional context in comments.

4 Comments

For windows?How do I?
imagemagick.org/script/binary-releases.php#windows but I am not sure gm developers tested it under Windows.
I have installed imageMagic , Im still getting the same error.. any clues?
1

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..

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.