一、背景

存在一个 IR 图(红外线 Infrared Radiation),需要在页面上显示出来,IR 图片格式是 gray8,即 8 位的灰度图。

Android 上的 Bitmap 图片格式使用的是 ARGB_8888,所以需要把灰度图转 ARGB 图,每个通道都为 8 位。

二、问题现象

转码思路很简单,就是一个 int 表示一个像素点,刚好是 4 * 8 = 32 位。
那么每一位的值都是等于灰度值,透明度为 0xFF 即可。

    Canvas canvas = mCameraView.getHolder().lockCanvas();// draw irint[] pixels = new int[mImageWidth * mImageHeight];for (int i = 0; i < pixels.length; i++) {int gray = iru8[i];pixels[i] = (0XFF000000) | (gray << 16) | (gray << 8) | gray;}Bitmap bitmap = Bitmap.createBitmap(pixels, mImageWidth, mImageHeight, Bitmap.Config.ARGB_8888);canvas.drawBitmap(bitmap, mIRMatrix, null);

然后预览时出现的问题就是下图这样,有很明显的光斑存在:

三、问题解决

首先,上面的现象肯定不是正常的,仔细看看代码,int gray = iru8[i] 这个步骤其实是有问题的,因为 byte 的范围是 -128 ~ 127 的,如果是负数,赋值为 int 的时候问题就大了(毕竟 java 里面也没有无符号数),之后的移位操作就会出错。

所以我们需要如下改动即可:

    int gray = iru8[i] & 0xFF;

再运行一下,画面就正常了:

一个小问题,注意注意移位操作中应该多加小心。

灰度图(IR 图)转成 RGB 图预览,画面出现光斑/黄斑问题解决相关推荐

  1. 分布式图处理引擎Graph Engine 1.0 预览版正式发布

    分布式图处理引擎Graph Engine 1.0 预览版正式发布 我们很高兴地宣布,由微软亚洲研究院开发的Graph Engine 1.0预览版正式发布.Graph Engine是一个基于内存的分布式 ...

  2. vue中将base64的pdf文件流转换成pdf并预览(二)——base64转PDF工具的使用

    vue中将base64的pdf文件流转换成pdf并预览(二)--base64转PDF工具的使用 Base64 to PDF官网 1.官网 官网--https://www.ipvoid.com/base ...

  3. vue中将base64的pdf文件流转换成pdf并预览(一)——vue-pdf组件的基本使用

    vue中将base64的pdf文件流转换成pdf并预览(一)--vue-pdf组件的基本使用 vue-pdf组件官网--https://www.npmjs.com/package/vue-pdf 1. ...

  4. vue3中将base64的pdf文件流转换成pdf并预览(三)——base64数据转pdf pdf工具栏不显示 vue3-seamless-scroll组件的使用-事件捕获 给接口追加数据

    vue3中将base64的pdf文件流转换成pdf并预览(三)--接口base64数据转pdf的处理 & pdf工具栏不显示 & vue3-seamless-scroll组件的使用-事 ...

  5. uni-app 轮播图视频+图片 视频图片全屏预览 两种方法

    项目场景: 在做商城项目的时候,商品详情的轮播图需要同时显示视频和图片,并且能够全局预览 解决方案: 如果项目里有uview这个组件库,可以通过swiper轮播图的指定类型进行解决,点击这里进行跳转 ...

  6. 将office 的文件,word,xlsx,ppt,txt 转成pdf 供预览

    java实现在线预览功能--openoffice(支持xlx,xlxs,txt,word,ppt等格式)_Bestest~的博客-CSDN博客_openoffice 能预览哪些格式功能说明:利用ope ...

  7. 文档转成html在线预览,java poi Word文档转为HTML文件 实现在线预览功能

    Java代码 import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; im ...

  8. html打印为pdf时为空白,CAD打印成PDF时,预览的时候是可以看到,但打印后是空白的,不知为什么?...

    可能是打印设置没有做好.你可以再次尝试一下修改打印路径试一下. 我们运行迅捷CAD编辑器专 业版制图软件,然后可以操作: 1.在命令行输入"config"命令字符,调用" ...

  9. 如何把HTML转换成动图,视频转gif 如何将视频制作gif动画图片

    狸窝是帮助用户解决问题 提供教程解决方案 在这个过程中有使用我们自己开发的软件 也有网上找的工具 只要帮助用户解决问题就好!同意请往下学习↓↓↓ 一个女人抱着条狗 在数钱!你也可以抱条狗数着钱录段视频 ...

最新文章

  1. 一维码ITF 25简介及其解码实现(zxing-cpp)
  2. 长连接、短连接、短轮询、长轮询
  3. 如何在64位win7下通过ODAC来访问Oracle服务器
  4. 输入参数的数目不足_机器学习算法—KMEANS算法原理及阿里云PAI平台算法模块参数说明...
  5. 安卓在代码中设置TextView的drawableLeft、drawableRight、drawableTop、drawableBottom
  6. 一块钱买一瓶水,两个空瓶换一瓶水,三个瓶盖换一瓶水,现在有20块钱,一共可以喝多少瓶水?
  7. html:(2):制作第一个网页和html和css的关系
  8. 【APIO2015】完跪记
  9. 美图技术博客之地理空间距离计算优化
  10. Android JNI开发入门之二
  11. monkey操作,获取包名,参数,日志,百分比
  12. 【从理论到代码】旋转矩阵与欧拉角 一
  13. 让云触手可及——微软云计算解决方案白皮书
  14. 64位微型计算机64指技术指标,\\\64位微型计算机\\\中的64,是指下列技术指标中的...
  15. 业界最全的iOS包瘦身技术实践总结
  16. ie主页被篡改(修改注册表)
  17. 苏州承泽医疗科技面经
  18. 思科交换机接口安全配置
  19. 关于三星S9+ NFC绑定门禁卡
  20. 光照强度传感器BH1750

热门文章

  1. xcode no rule to process file xxx of type解决
  2. 彻底理解操作系统:1,什么是程序?
  3. ionic+Angular 手机二维码扫描
  4. 远距离WiFi传输模块,云望物联cv5200无线通信技术,WiFi信号远距离传输
  5. OpenCV之边缘检测
  6. 钉钉二次开发 考勤与薪资统计
  7. 【Spark 调优】Spark 开发调优的十大原则
  8. 玩游戏不如学js之数据类型和类型转换
  9. Linux图形桌面窗口通过VNC等工具访问后打开窗口没有标题栏,不能移动,关闭,最小化的解决方法
  10. 使用gradle进行apk打包