2012-03-11 3 views
2

미리보기의 일부 픽셀을 나머지보다 조금 더 어둡게 변경하고 싶습니다. 미리보기의 위쪽 절반이 미리보기의 아래쪽 절반보다 조금 더 어두워지기를 원한다고 가정 해 봅시다.Android 카메라 - 미리보기에서 픽셀을 어떻게 바꿀 수 있습니까?

camera.setPreviewCallback(new PreviewCallback() { 
    // Called for each frame previewed 
    public void onPreviewFrame(byte[] data, Camera camera) { 
    Log.d(TAG, "onPreviewFrame called at: " + System.currentTimeMillis()); 
    for (int i = 0; i < data.length; i++){ 
     if(i < data.length/2) 
     data[i] = manipulate(data[i]); 
    } 
    Preview.this.invalidate(); 
    } 
}); 

을하지만, 내가 뭔가 잘못하고있는 중이 야하기 때문에 작동하지 않습니다 :

나는이 같은 setPreviewCallback 사용하려고했다. 어떻게 작동시킬 수 있습니까? 당신은 단지 onPreviewFrame의 버퍼의 사본을 얻을 수 있기 때문에

감사 Eyal 님은

답변

1

그것은, 그런 미리보기를 조작 할 수 없습니다.

가장 쉬운 방법은 투명한 캔버스를 사용하여 일부를 더 어둡게 만드는 다른보기를 오버레이하는 것입니다. Overlay 뷰는 입력 이미지를 검사하여 오버레이를 생성해야하는 경우 Camera.PreviewCallback을 구현할 수 있습니다. 당신의 활동에

은 당신이 할 :

setContentView(yourPreviewSurfaceView); 
addContentView(yourOverlayView, ...); 
+0

감사합니다! 효과가있는 – Eyal

관련 문제