2014-01-24 2 views
1

이 코드는 높이 및 너비 매개 변수 집합에 따라 동적 이미지를 만드는 데 사용됩니다. localhost : 3000/50/50은 너비 50 및 높이 50의 이미지를 제공합니다 .I github에서 가져온이 코드를 사용하고 있습니다. 내 시스템에 imageMagick을 설치했습니다. 노드 js 동적 이미지 오류

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); 

는 project.What의이기 때문에 내가 잘못하고있는 중이 야한다는 것입니다 내가 파일 nodejs.png이 같은 디렉토리에 존재

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)

얻을 오류인가?

+0

는 전체 오류 메시지를 게시하고 찾을하시기 바랍니다 수 필요 코드의 오류 줄도? – exebook

답변

1

당신은 .. 시스템

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

이 트릭을했고, 지금 작동에 installign imageMagicks 후 코드의 ..이 줄을 추가

2

거의 확실하게 ImageMagic 또는 GraphicsMagic을 설치해야합니다. 내 생각 엔 gm 모듈은 그래픽 관리 명령 줄 도구를 감싸는 래퍼 일뿐입니다. 그래서 resize()node과 같은 것을 호출 할 때 찾을 수없는 /usr/bin/convert을 호출하려고하면 spawn child_process 오류가 발생합니다.

imagemagic을 설치하려면 우분투에 sudo apt-get install imagemagic을 입력하십시오.

+0

Windows의 경우 어떻게합니까? –

+0

http://www.imagemagick.org/script/binary-releases.php#windows 그러나 나는'gm' 개발자가 Windows에서 테스트했는지 확신 할 수 없습니다. – exebook

+0

http://stackoverflow.com/questions/10098768/about-graphics-magick-for-node-error 여기도 보입니다. – exebook