每像素 16 位灰度位图



从我的相机上,我得到了一个字节数组。每两个字节(数组的两个元素(定义一个像素。如果我理解正确,当前大多数设备仅支持 256 种灰色阴影。 所以,对于我的图像,我只需要MSB。问题是这是一个流视频,为由每个字节组成的位图创建一个新数组需要很长时间。是否可以使用某些类输出"降级"图片(16 位 -> 8 位(?

编辑:如果有类可以创建每像素16位的灰度位图,那对我来说也很有趣

为了加快转换处理速度,您可能会认为使用

OpenGL ES

使用纹理将彩色位图呈现到缓冲表面,并在 glsl 中创建图像的灰度版本。 该值可以从 RGB 表示中计算,如下所示luminance = 0.21 * R + 0.72 * G + 0.07 * B。此方法需要大量工作来设置 GLES 环境,并且加载/读取位图可能效率不高。

渲染脚本

编写一个简单的渲染脚本内核,从原始位中提取 MSB,然后将结果输出到位图。这种方法可以使比我猜的 Java 中的直接实现更快。

如果您以前不了解 renderscript,请在此处查看官方文档,它没有那么复杂,也不会花费您太多时间来完成任务。

最新更新