前一阵子碰到个需求,将图片压缩到指定大小(byte),封装成外部服务,期间找过好多方案,最后选用c++操作opencv处理图片,springboot封装成服务。
其中java调用native方法选用了jnr-ffi。这个工具是在以前用lmdb的时候发现的。
使用基本上看他的README就可以了。
记一下注意的地方:
1、类型对应
String - equivalent to const char *
StringBuffer - equivalent to char *
2、注解
@out:可以减少一次数据拷贝,详细信息去看源码。
int test(@Out ByteBuffer byte, int size);