2012-01-12 3 views
4

내 장치에서 캡처 된 이미지가 흐리게 보입니다. 장치 카메라 구성 요소로 캡처 한 이미지가 좋아 보이기 때문에 캡처 버튼을 클릭하면 자동 확대 효과가 나타납니다. 이 시나리오를 달성하는 데 도움을 줄 수있는 방법과 장소는 무엇입니까? 여기 캡처 된 카메라 이미지가 흐릿하게 보입니다.

코드입니다 :

public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) { 
    // Now that the size is known, set up the camera parameters and begin 
    // the preview. 
    Camera.Parameters parameters = camera.getParameters(); 
    Integer version = Integer.parseInt(Build.VERSION.SDK); 
    if(version > Build.VERSION_CODES.ECLAIR_MR1) 
    { 
     Log.d(TAG, "------> version greater than eclari 2.1"); 
     List<Size> sizes = parameters.getSupportedPreviewSizes(); 
     Size optimalSize = getOptimalPreviewSize(sizes, width, height); 
     parameters.setPreviewSize(optimalSize.width, optimalSize.height); 
    } 
    else 
    { 
     Log.d(TAG, "------> version less than eclari 2.1"); 
     parameters.setPreviewSize(ApplicationInitiator.screenW,ApplicationInitiator.screenH); 
    } 

    List<String> focusModes = parameters.getSupportedFocusModes(); 
    if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) 
    { 
     parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); 
    } 

    parameters.setJpegQuality(100); 
    camera.setParameters(parameters); 
    camera.startPreview(); 
} 

답변

11

글쎄, 당신은 이미지를 캡처에 대해 이야기하지만, 당신이 얻을하려는 경우 나, 어쨌든, 사진 촬영에 대한 코드에 아무것도 표시되지 않는 텍스트에 초점을 얻을 때 초점을 맞춘 사진, 당신이해야 할 일은 사진을 찍을 수있는 AutoFocusCallback을 등록 할 수 있습니다 :

Camera.AutoFocusCallback mAutoFocusCallback = new Camera.AutoFocusCallback() { 
    @Override 
    public void onAutoFocus(boolean success, Camera camera) { 
     camera.takePicture(null, null, mPictureCallbackRaw); 
    } 
}; 

Camera.PictureCallback mPictureCallbackRaw = new Camera.PictureCallback() { 
    public void onPictureTaken(byte[] data, Camera c) { 
     // (...)    
    } 
}; 

public void takeFocusedPicture() { 
    mCamera.autoFocus(mAutoFocusCallback); 
} 

.

+0

정말 작동합니다! 고마워. 하지만 카메라를 호출하려고하면 그 후에는 흐린 표면이 보일 것입니다. – Stan

+0

사진을 찍기 전에 바로 호출해야합니다. 그렇지 않으면 작동하지 않습니다. –

관련 문제