2011-08-10 3 views
0

서버에있는 jpg의 축소판을 만들려고합니다. ... 파일을 열지 못했습니다node.js 및 GD 또는 imagemagick을 사용하여 이미지에 액세스하고 조작하려고 시도합니다.

ImageMagick이 :

var gd = require('node-gd'); 
gd.openJpeg("./test.jpeg", function (img, path) { 
    if (img) { 
     console.log("file opened ... " + img); 
    } 
    else { 
     console.log("failed to open file ..."); 
    } 
}); 

로그 :

var im = require('imagemagick'); 
im.identify('./test.jpeg', function (err, features) { 
    if (err) throw err; 
    console.log(features); 
}); 

로그를 내가 노드 GD 및/또는 노드 ImageMagick이 있지만, 어느 파일에 액세스 할 수 있습니다 사용하여 시도 : 오류 : 명령 실패 : execvp() : 해당 파일이나 디렉토리가 없습니다.

하지만 test.jpeg 파일은 분명히 있습니다.

var fs = require('fs'); 
fs.open(filePath, 'r', function (err, fd) { 
    console.log("open file ... " + err + " " + fd); 
}); 

잘 작동합니다!? 오류가 기록되지 않습니다.

jpeg에서 chmod 0777을 시도했습니다. 아무것도.

답변

2

노드 용 imagemagick 모듈의 문서에서 알 수 있듯이이 모듈은 imagemagick의 comandline 바이너리에 대한 액세스를 제공합니다. imagemagick (명령 행 바이너리)을 설치 했습니까? 그들은 당신의 껍질에 있습니까?

"식별"이라는 이름의 이진 파일을 찾고 있습니다. "which identify"를 실행하여 경로를 표시 할 수 있습니다. 전체 경로를 제공해야합니다. 프롬프트가 반환되면 설치되지 않았거나 경로에 있지 않은 것입니다.

어떤 명령으로도 win32를 사용하고 있지 않다면 identify.exe라는 이진 파일을 확인해야합니다.

은 (GD와 함께 일한 적이 - 그래서 내가 거기 확실하지 오전) - 유의하시기 바랍니다, 식별 할 수있는 경로가 사용자 환경에서 다를 수 있습니다 여기

이 코드와 ImageMagick이 예는 다음과 같습니다

snowflake:Desktop rhaen$ node check_im.js 
{ format: 'JPEG', width: 320, height: 250, depth: 8 } 
snowflake:Desktop rhaen$ which identify 
/usr/local/bin/identify 

그래서 - 노드 모듈과 코드가 작동합니다.

+0

위대한 이미지 작업으로 도움이되었습니다. 나는 그것을 다시 설치했고 효과가 있었다. 그거야. GD의 문제점은 현재 노드 버전이 버그가있는 것 같습니다. 0.1.6으로 다운 그레이드되고 다시 작동합니다. – pkyeck

관련 문제