2023-01-20 309
我有一个C ++应用程序,该应用程序与相机通信并获取原始图像数据.
然后,我在C ++中有一个字节[],我想用Jni发送给Java.
但是,我需要将原始字节[]转换为真实的文件格式(.bmp是我的首选).
如果我使用bitmapfileinfo和bitmapheaderinfo将其从C ++编写到硬盘上的文件,我可以轻松地执行此操作,但是我不知道如何将整个Format发送到Java.
.
.
然后,我考虑使用JNI仅发送原始字节[]数据,然后将其转换为
.bmp,但我似乎找不到在Java中这样做的任何库.
我最好的选择是什么?将图像转换为C ++,然后使用JNI发送或将原始数据发送到Java,然后将其转换为.bmp?我最容易实现这一目标?
Java 1.5中只有两行:
BufferedImage image = ImageIO.read( new ByteArrayInputStream( byteArray ) );
ImageIO.write(image, "BMP", new File("filename.bmp"));
据我所知
无需执行任何操作.将字节数组变成输入流并将其馈送到Imageio.Read();
public Image getImageFromByteArray(byte[] byteArray){
InputStream is = new ByteArrayInputStream(byteArray);
return ImageIO.read(is);
}
这是从您的字节数组中创建一个图像对象,然后在GUI组件内显示它确实非常琐碎.如果您想保存它,也可以使用Imageio类.
public void saveImage(Image img, String fileFormat, File f){
ImageIO.write(img, fileFormat, f);
}
如果您知道如何将其写入文件,则可以使用(几乎)将相同的代码写入内存缓冲区.您可以将内存缓冲区运送到Java,并将其解码如Stroboskop或Markus Koivisto所提到的格式.如果您编辑了问题以包括将数据写入.bmp文件的方式,我可以建议如何将其转换为内存操作.
以上所述是小编给大家介绍的如何在Java中从Raw Byte []中创建BMP文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/25978.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态