0

我正在寻找一个系统,我可以在其中使用 Prolog 调用 Cool Image 库函数(这是一个用于图像处理任务的 C 语言库)。

CoolImage 库中有一些函数,例如调整图像大小、创建蒙版等。所以我不想对这些函数进行任何更改,只是通过使用 Prolog 我可以调用它们并进一步使用它来构建 WIN32 API。

如果有人能就这一点指导我,即我应该参考的任何参考或任何实施方式,我将不胜感激。

4

1 回答 1

1

我已经将一个简单的界面示例上传到github ,当作为参数传递给程序时,它运行CImg 文档(参见example.pl )中的第一个示例。

它展示了如何创建对象并定义作用于这些对象的方法。看看代码做了什么,并随时提出问题。

编辑

更新了用于接口谓词的 git repo 引入模块。CImg现在,类的暴露成员CImgDisplay必须分别以cImg,为前缀cImgDisplay,并且构造函数/析构函数被命名为new, delete

文件 example.pl 已移至examples/getting_started.pl,它显示了如何获取相对于源定位的图像:


    ...
    module_property(getting_started,file(ModuleFile)),
    file_directory_name(ModuleFile,ModuleDir),
    directory_file_path(ModuleDir,'img/milla.bmp',Milla),

    cImg:new(Milla,Image),
    cImg:blur(Image,2.5),

编辑:当你发现你需要调用一个尚未实现的成员时,你应该将它添加到你的 swipl_cimg.cpp 中,在适当的部分(我的意思是,你看到#define PROLOG_MODULE className...与你需要的对象相对应的地方),取消引用对象(s ) 使用强制转换函数并调用 c++ 方法。这是一个冗长而无聊的方式,对不起,但我不知道更好的......要涵盖完整的 CImg 库,需要做很多工作。因此,尝试实施 - 并仔细测试 - 只需要什么......

遵循一些约定很有用:首先输入参数,最后输出。

于 2019-09-29T19:04:28.910 回答