GraphicsMagick代码冻结在节点插件(OSX)中
GraphicsMagick code freeze in node addon (OSX)
我正在尝试将这个简单的GraphicsMagick示例作为节点绑定/插件。此代码在带有 GraphicsMagick 1.3.15 的 OSX 10.6.7 中按预期工作
#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!
但是将此代码设置为节点绑定 (0.6.14) 只会冻结(请参阅完整要点):
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.
}
从javascript调用它时的输出:
AsyncWork...
任何想法出了什么问题?附带说明一下,这在 Ubuntu 下编译/运行时实际上有效!
您是否尝试过在AsyncWork
中使用Magick::InitializeMagick(0);
进行初始化?异步函数在池线程上运行。
您总是可以在这里给出完成的 GM 插件。
相关文章:
- 从C++本机插件更新Vector3数组
- 使用CMake创建QML插件
- 停止cmake target_link_libraries将插件中静态库的两个对象文件链接到静态库本身
- 如何创建从Maya(或类似程序)到虚幻引擎的自定义数据导出插件
- OSX MetalKit CVMetalTextureCacheCreateTextureFromImage失败,状态:
- clang 插件:在编译过程中修改 AST
- OSX蓝牙打开RFCOMMChannelAsync声称已连接,但未建立连接,并且从未调用过委托
- 实现动态插件管理器
- 我想通过带有C++和Python的插件创建一个可扩展的应用程序
- Agora.io 虚幻引擎插件构建错误
- 使用带有C++对象和标准库容器的插件系统
- 在OSX上使用CMake将Adobe的XMP工具包构建为共享库的最简单方法是什么?
- 运行命令 "rosbag play example.bag" 时出错。找不到与插件 rosbag/NoEncryptor 对应的库
- 编译 llvm 插件时出现问题:llvm/Config/llvm-config.h:没有这样的文件或目录
- C ++是否有C ++ 17 OSX 10.13.6的标志
- Allegro 5.2 TTF 插件在 Mac OSX 版本中缺失
- 本机插件Null异常OSX
- GraphicsMagick代码冻结在节点插件(OSX)中
- 无法使用 OSX Lion 编译C++插件?
- 无法运行使用 macdeployqt 创建的 OSX 应用程序。使用 Fusion 样式时缺少可可插件