java通过jnr-ffi调用C++外部函数

前一阵子碰到个需求,将图片压缩到指定大小(byte),封装成外部服务,期间找过好多方案,最后选用c++操作opencv处理图片,springboot封装成服务。

其中java调用native方法选用了jnr-ffi。这个工具是在以前用lmdb的时候发现的。

jnr的github地址

使用基本上看他的README就可以了。

记一下注意的地方:

1、类型对应

String - equivalent to const char *

StringBuffer - equivalent to char *

2、注解

@out:可以减少一次数据拷贝,详细信息去看源码。
int test(@Out ByteBuffer byte, int size);

 

你可能感兴趣的:(java)