您现在的位置是:主页 > news > 做网站营销发布文章/宁波网站推广找哪家公司

做网站营销发布文章/宁波网站推广找哪家公司

admin2025/6/18 21:47:06news

简介做网站营销发布文章,宁波网站推广找哪家公司,asp网站开发论文参考文献,凡科做的是网站吗一、背景 存在一个 IR 图(红外线 Infrared Radiation),需要在页面上显示出来,IR 图片格式是 gray8,即 8 位的灰度图。 Android 上的 Bitmap 图片格式使用的是 ARGB_8888,所以需要把灰度图转 ARGB 图&…

做网站营销发布文章,宁波网站推广找哪家公司,asp网站开发论文参考文献,凡科做的是网站吗一、背景 存在一个 IR 图(红外线 Infrared Radiation),需要在页面上显示出来,IR 图片格式是 gray8,即 8 位的灰度图。 Android 上的 Bitmap 图片格式使用的是 ARGB_8888,所以需要把灰度图转 ARGB 图&…

一、背景

存在一个 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;

再运行一下,画面就正常了:
在这里插入图片描述

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