我有以下问题。我有 C 代码,它获取 PNG 图像作为基本原始数据并将其保存在内存中。我希望通过使用 JNI 将这些原始数据转换为 Java 中的 BufferedImage。有谁知道这样做的任何方法或以前做过吗?
我假设您了解如何使用 JNI 调用函数的基础知识。事情并没有那么复杂,尽管可能会很麻烦。
如果您想快速完成,只需将 PNG 写入临时文件,通过 JNI 向上传递文件名并使用 ImageIO 加载它。
如果您想变得更复杂,并且避免需要文件路径,您可以使用ImageIO.read(输入流) https://docs.oracle.com/javase/7/docs/api/javax/imageio/ImageIO.html#read(javax.imageio.stream.ImageInputStream) on a 字节数组输入流 https://docs.oracle.com/javase/7/docs/api/java/io/ByteArrayInputStream.html它包装了您通过 JNI 传入的字节数组。您可以致电新字节数组() http://java.sun.com/j2se/1.4.2/docs/guide/jni/spec/functions.html#wp17318从 C 然后使用设置字节数组区域 http://java.sun.com/j2se/1.4.2/docs/guide/jni/spec/functions.html#wp22933设置数据。
最后,你可能会考虑使用HTTP来传输数据,Apache有一组您可以使用的组件 http://hc.apache.org/包含一个小型 Web 服务器,您可以将 C 代码 POST 到 Java。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)