有大佬用java通过jna调c的sdk没啊?麻烦指点一下!

格子衫身上穿 2021-04-08 10:17:44
最近在对接相机(带条形码的照片),然后相机那边提供了c的sdk,无奈我这边只能用java调用。然后在图片那一块 c那边给的图片类型是 “char*”
然后我这边通过映射工具后的类型是Pointer。代码如图:



然后相机拍照后,我这边把图片的上的其他值都取到了(比如条形码的数据),但是图片我这边不知道怎么取,代码如下:


代码中的字段 “pImageBuf”大概率就是图片,然后问题就是出在这,我该怎么将这个数据转换成图片呢?希望各位大佬给点意见
...全文
286 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
格子衫身上穿 2021-04-12
  • 打赏
  • 举报
回复
引用 4 楼 冰思雨 的回复:
如果我没有猜错的话,楼主的这个SDK源码,对应的应该是 视频流里面的一个帧的数据包, 只有视频流里面的帧数据,才会有图像的称呼,图片和图像还是有区别的。 向这种流媒体的数据,一般都是用来动态绘制 GUI 窗口的,不会用来保存成为 图片文件。 因为,流媒体中的帧数是每秒二三十帧的样子,有的可能会更高,而你的程序写入图片文件的速度是远远跟不上的。 一般情况下,想要保持流媒体中的帧,都是要开发一个类似截图的功能,就是将缓冲区中的数据复制出来,然后,另外开启一个线程,只针对这一个帧的数据进行文件存储,当然,也要先编码压缩后再存储,几乎没有将每一帧都保存的状况。
感谢大哥 问题已经解决了 谢谢您!
格子衫身上穿 2021-04-10
  • 打赏
  • 举报
回复
引用 4 楼 冰思雨 的回复:
如果我没有猜错的话,楼主的这个SDK源码,对应的应该是 视频流里面的一个帧的数据包, 只有视频流里面的帧数据,才会有图像的称呼,图片和图像还是有区别的。 向这种流媒体的数据,一般都是用来动态绘制 GUI 窗口的,不会用来保存成为 图片文件。 因为,流媒体中的帧数是每秒二三十帧的样子,有的可能会更高,而你的程序写入图片文件的速度是远远跟不上的。 一般情况下,想要保持流媒体中的帧,都是要开发一个类似截图的功能,就是将缓冲区中的数据复制出来,然后,另外开启一个线程,只针对这一个帧的数据进行文件存储,当然,也要先编码压缩后再存储,几乎没有将每一帧都保存的状况。
真牛 把我的问题解答的淋淋尽致
格子衫身上穿 2021-04-09
  • 打赏
  • 举报
回复
大哥们!大佬们
格子衫身上穿 2021-04-09
  • 打赏
  • 举报
回复
冰思雨 2021-04-09
  • 打赏
  • 举报
回复
如果我没有猜错的话,楼主的这个SDK源码,对应的应该是 视频流里面的一个帧的数据包, 只有视频流里面的帧数据,才会有图像的称呼,图片和图像还是有区别的。 向这种流媒体的数据,一般都是用来动态绘制 GUI 窗口的,不会用来保存成为 图片文件。 因为,流媒体中的帧数是每秒二三十帧的样子,有的可能会更高,而你的程序写入图片文件的速度是远远跟不上的。 一般情况下,想要保持流媒体中的帧,都是要开发一个类似截图的功能,就是将缓冲区中的数据复制出来,然后,另外开启一个线程,只针对这一个帧的数据进行文件存储,当然,也要先编码压缩后再存储,几乎没有将每一帧都保存的状况。
冰思雨 2021-04-09
  • 打赏
  • 举报
回复
你说的图片,指的是 图片的二进制数据呢,还是图片文件呢? 图片的二进制数据,就保存在 pImageBuf 里面,调用 getByteArray 方法,可以获得具体的数据。 图片的类型保存在 enImageType 里面,你要先确定图片的类型,然后,针对不同的类型来处理图片的数据。 比如,jpg 类型的图片,你就不能保存成bmp为扩展名的文件,这样保存,也无法正常打开,因为,数据类型和文件类型不匹配。 pImageLen 的用法应该是正确的,就是这数据的长度,当然,也是文件的长度。 另外,注释里面说的是图像的原始数据,这说明,缓存里面的数据,应该没有进行编码处理,这样的数据,可以直接绘制到 GUI 窗口中,不适合保存到文件中。 如果你想要将这些原始数据保存到文件中的话,需要一个编码过程才行,编码的主要过程是对原始数据进行压缩转化为便于存储和传输的数据格式。 如果你找不到合适的第三方jar包进行操作的话,JDK里面有个 ImageIO 类,小一点的图片应该可以用它进行处理。

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧