java - 将 ByteBuffer 转换为 Image 会产生嘈杂的输出
问题描述
我正在尝试将 ByteBuffer 转换为位图图像,但我得到的输出很嘈杂,即不是我所期望的。我的代码如下:
private Bitmap getOutputImage(ByteBuffer output){
output.rewind();
int outputWidth = 384;
int outputHeight = 384;
Bitmap bitmap = Bitmap.createBitmap(outputWidth, outputHeight, Bitmap.Config.RGB_565);
int [] pixels = new int[outputWidth * outputHeight];
for (int i = 0; i < outputWidth * outputHeight; i++) {
//val a = 0xFF;
//float a = (float) 0xFF;
//val r: Float = output?.float!! * 255.0f;
//byte val = output.get();
float r = ((float) output.get()) * 255.0f;
//val g: Float = output?.float!! * 255.0f;
float g = ((float) output.get()) * 255.0f;
//val b: Float = output?.float!! * 255.0f;
float b = ((float) output.get()) * 255.0f;
//pixels[i] = a shl 24 or (r.toInt() shl 16) or (g.toInt() shl 8) or b.toInt()
pixels[i] = (((int) r) << 16) | (((int) g) << 8) | ((int) b);
}
bitmap.setPixels(pixels, 0, outputWidth, 0, 0, outputWidth, outputHeight);
return bitmap;
}
我得到的图像是
请告诉我这里有什么问题?
解决方案
推荐阅读
- error-handling - Parabola 和 Diffbot 上的错误 500 - 不允许私有 IP
- r - 使用 shapefile 和传单调用数据的闪亮应用程序问题
- reactjs - 如何在 react-native 功能组件中将获取数据设置为文本字段
- python - 如何编码高基数特征?
- ios - SwiftUI - 更改 KVKCalendar 的 CalendarType
- swift - 快速重新安装应用程序后无法将文件上传到icloud
- c++ - 无法初始化变量
- c++ - 发生错误时如何终止应用程序?
- javascript - 如果我删除文件然后再次尝试上传文件,则节点 js 的 multer 问题
- node.js - 在 NextJS 和 ExpressJS 系统中使用 Firebase 进行身份验证的最佳流程是什么