2013-12-12 43 views
0

我有一個相機預覽工作,我想從我的相機預覽的特定座標中提取Y值以確定亮度。如何從我的相機預覽中爲YuvImage創建'byte [] yuv'參數?

但是,我不知道如何爲傳入值時創建'byte [] yuv'參數。從API文檔(http://developer.android.com/reference/android/graphics/YuvImage.html)它告訴我這是yuv數據。那麼如何從我的相機預覽中獲取這個字節數組來創建我的YuvImage?

或者我解決這個問題完全錯誤?

在此先感謝。

回答

1

通常,從onPreviewFrame()到達的數據字節[]將亮度數據打包在寬度*高度數組中。

要提取亮度(X,Y),可以使用下面的代碼片段:

void onPreviewFrame(byte[] data, android.hardware.Camera camera) { 
    byte result = data[x + y*width]; 
} 

你不需要YuvImage了點。

+0

非常感謝,我很感激。我設置了使用'cameraobject.setPreviewCallback(this)'調用的PreviewFrame'現在,結果是否可以用於確定亮度?另外,爲什麼數據數組中的x + y * width?這對我來說是一個新概念,對於混淆抱歉! – user2957243