0
이 간단한 GraphicsMagick 예제를 노드 바인딩/추가 기능으로 만들려고합니다. 호출 할 때노드 애드온 (OSX)의 GraphicsMagick 코드 고정
void AsyncWork(uv_work_t* req) {
std::cout << "AsyncWork..." << std::endl;
Baton* baton = static_cast<Baton*>(req->data);
baton->result = 12345; // Just a test
Magick::Image image; // <--- Freezes here!
image.read("snow.jpg");
std::cout << "Scaling..." << std::endl;
image.scale("200");
std::cout << "Done!" << std::endl;
image.write("snow-scaled.jpg");
// and baton->error to true.
}
출력 : GraphicsMagick 1.3.15
#include <Magick++.h>
#include <iostream>
using namespace std;
int main(int argc,char **argv)
{
Magick::InitializeMagick(0);
Magick::Image image;
try {
image.read("snow.jpg");
image.scale("320");
image.write("snow-scaled.jpg");
}
catch(Magick::Exception &error_) {
cout << "Caught exception: " << error_.what() << endl;
return 1;
}
cout << "Image scaled!" << endl;
return 0;
}
Compiling:
g++ scale.cpp `GraphicsMagick++-config --cppflags --cxxflags --ldflags --libs`
Running:
./a.out
Image scaled!
와 OSX 10.6.7 예상하지만,이 코드를 결합 노드 (0.6.14) 만 정지 (see full gist)를 만들기로이 코드는 작동 그것에서 자바 스크립트 :
AsyncWork...
어떤 아이디어가 잘못 되었나요? 참고로, 이것은 실제로 우분투에서 컴파일/실행될 때 작동합니다!