当前位置: 首页 > news >正文

大疆红外TSDK红外照片转RGB888图片JAVA实现方法

/*** 红外照片转RGB888图片* @param sourceFilePath 本地源文件* @return*/
public static BoolResult convertToRGB888File(String sourceFilePath)  {//1.红外图片二进制数据try {FileInputStream fis0 = new FileInputStream(sourceFilePath);if (dirpHandle != null) {tsdkLibrary.dirp_destroy(dirpHandle.getPointer(0));}//创建句柄dirpHandle = new Memory(fis0.available());byte[] buffer = new byte[(int) fis0.available()];int read = fis0.read(buffer, 0, fis0.available());// 指针分配tsdkLibrary.dirp_create_from_rjpeg(buffer, buffer.length, dirpHandle);fis0.close();// 获取分辨率dirp_resolution_t resolution = new dirp_resolution_t();tsdkLibrary.dirp_get_rjpeg_resolution(dirpHandle.getPointer(0), resolution);int imageSize2 = resolution.width * resolution.height * 3;byte[] bytes6 = new byte[imageSize2];int i1 = tsdkLibrary.dirp_process(dirpHandle.getPointer(0), bytes6, imageSize2);System.out.println("i1 = " + i1);// 创建BufferedImage对象BufferedImage image = new BufferedImage(resolution.width, resolution.height, BufferedImage.TYPE_INT_RGB);// 将字节数据写入BufferedImageint index = 0;for (int y = 0; y < resolution.height; y++) {for (int x = 0; x < resolution.width; x++) {// 读取RGB值(每个像素3个字节)int r = bytes6[index++] & 0xFF;int g = bytes6[index++] & 0xFF;int b = bytes6[index++] & 0xFF;// 组合成RGB颜色值int rgb = (r << 16) | (g << 8) | b;// 设置像素颜色image.setRGB(x, y, rgb);}}//修改文件名称String finalRawJPGObjectName = sourceFilePath.replace(".jpeg", "_raw.bmp");// 保存图片到文件ImageIO.write(image, "bmp", new File(finalRawJPGObjectName));return new BoolResult(true);} catch (Exception exception) {exception.printStackTrace();return new BoolResult(false).setData("操作失败!");}}
http://www.wxhsa.cn/company.asp?id=827

相关文章:

  • MCU联网
  • 算法-A*-01 - jack
  • 代码是上午写的,公司是下午解散的!
  • [antlr] 如何在Linux(Ubuntu)环境中安装配置antlr4.9.2
  • 国内开发者如何选择代码管理平台?Gitee、GitHub与Bitbucket深度对比
  • Spring-Android-即时入门-全-
  • 4. 链表
  • Maven-和-Eclipse-全-
  • Prompt、RAG、微调
  • 飞书对程序员下手了,0 代码生成各类系统!!
  • 测试用例设计检查项
  • Android Kotlin请求权限及权限回调处理
  • 版本发布| IvorySQL 4.6 发布
  • Avalonia Calendar 日历控件遇到 Flyout 或者切换页面时出现的鼠标按下失效的解决方法
  • cache和主存的映射方式
  • Vue 2 + Element UI 技术栈的管理端项目和Git使用教程
  • 你好
  • 2025年图像、信号处理与机器学习国际学术会议(ISPML 2025)
  • 利用Ampere Altra与SpinKube实现可扩展工作流的突破性实践
  • 有向距离场SDF,在游戏中如何实现agent导航以及绕障
  • ubuntu22.04.5系统重启后网络配置消失问题
  • 第十届计算机技术与机械电气工程国际学术论坛(ISCME 2025)暨2025年泰山学术论坛-鲁东大学微纳传感器及系统专题论坛
  • SLB和NAT网关的作用
  • 基于Python+Vue开发的音乐推荐管理系统源码+运行
  • linux 系统下iperf 测试网卡性能优化步骤
  • FinRL(2)China_A_share_market_tushare.ipynb
  • 应急响应:某网站被挂非法链接
  • 笔记-每天进步一点
  • 用惯了VO,什么时候需要DTO?
  • 剑指offer-29、最⼩的k个数