0

我正在使用 camera2 API 我有兴趣从字节数组中获取 RGB 值实际上是 RGB 值的平均值当从 ByteBuffer 收集字节数组并使用 FileOutputStream.write(bytes) 写入文件时,我可以从这部分得到它

这是我的代码:

ByteBuffer byteBuffer = mImage.getPlanes()[0].getBuffer();
byte[] bytes = new byte[byteBuffer.remaining()]; 
byteBuffer.get(bytes); 
FileOutputStream fileOutputStream = null; 
try {  
     fileOutputStream = new FileOutputStream(mImageFile);    
     fileOutputStream.write(bytes); 
} 
catch (FileNotFoundException e) {  
   // TODO Auto-generated catch block  e.printStackTrace(); } catch    
   (IOException e) {  
          // TODO Auto-generated catch block  e.printStackTrace(); 
   } 
finally {  
    mImage.close();  
    try {   
       fileOutputStream.close();  
    } 
    catch (IOException e) {   // TODO Auto-generated catch block  
        e.printStackTrace();  
    } 
} 
4

1 回答 1

0

Image参考页面暗示BitmapFactory方法可能是您正在寻找的,用于将 JPEG 格式数据转换为Bitmap.

但是,如果您也不需要将数据以 JPEG 格式保存到文件中(即,如果您只是在应用程序中处理来自相机的图像),您可能需要考虑将输出Surface格式从更改JPEGYUV_420_888. 然后您可以将其转换为 RGB Bitmap(请参阅此答案)并节省编码 JPEG 所需的大量时间。

于 2016-03-13T01:15:56.187 回答