- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从嵌入式摄像头获取分辨率为 80 x 60 的 16 位彩色图像 ( datasheet here )。我成功地从相机获取 9600 (80 * 60 * 16/8) 字节,但在显示图像时遇到问题。我使用以下代码将字节数组转换为位图:
bm = Bitmap.createBitmap(80, 60, Bitmap.Config.RGB_565);
bm.copyPixelsFromBuffer(ByteBuffer.wrap(jpegBytes));
jpegBytes 是图像字节数组,长度为 9600 字节。
现在,我得到的图像如下所示:
99% 的时间。但是,我可以获得如下所示的未损坏的图像:
很少。有人对为什么会发生这种情况有任何建议吗?非常感谢!
更新:
似乎所有像素都位于正确的位置,但它们的 RGB 值混合在一起。例如,两张照片之间的白色部分是相同的,因为 RGB 的顺序对于获得白色并不重要。但是,很明显,颜色混合了,因为红色椅子在损坏的图像中显示为蓝色,蓝色背包在损坏的图像中显示为绿色
最佳答案
我相信问题是由于您的配置 Bitmap.Config.RGB_565 引起的。以下是 Android 文档的摘录
Each pixel is stored on 2 bytes and only the RGB channels are encoded: red is stored with 5 bits of precision (32 possible values), green is stored with 6 bits of precision (64 possible values) and blue is stored with 5 bits of precision. This configuration can produce slight visual artifacts depending on the configuration of the source. For instance, without dithering, the result might show a greenish tint. To get better results dithering should be applied. This configuration may be useful when using opaque bitmaps that do not require high color fidelity.
希望这有帮助
关于java - Android 上的 16 位 RAW RGB_565 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17839993/
我是一名优秀的程序员,十分优秀!