捕捉的相机图像正在模糊 [英] Captured camera image is looking blurry
问题描述
我的问题拍摄的图像在寻找我的应用程序,其中模糊作为与设备摄像头组件捕获的图像看起来不错 - 在拍摄按钮的东西自动变焦效果是怎么回事,一旦用户点击。可有一个人帮我实现这个场景如何和我应该在哪里申请
这里是code:
公共无效surfaceChanged(SurfaceHolder架,INT格式,诠释的宽度,高度INT){
//现在,尺寸是已知的,设置相机参数,并开始
//将preVIEW。
Camera.Parameters参数= camera.getParameters();
版本整数=的Integer.parseInt(Build.VERSION.SDK);
如果(版本> Build.VERSION_ codeS.ECLAIR_MR1)
{
Log.d(TAG,------>版本比2.1 eclari更大);
清单<尺寸和GT;大小= parameters.getSupported previewSizes();
大小optimalSize = getOptimal previewSize(尺寸,宽,高);
parameters.set previewSize(optimalSize.width,optimalSize.height);
}
其他
{
Log.d(TAG,------>版本低于2.1 eclari);
parameters.set previewSize(ApplicationInitiator.screenW,ApplicationInitiator.screenH);
} 清单<串GT; focusModes = parameters.getSupportedFocusModes();
如果(focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO))
{
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
} parameters.setJpegQuality(100);
camera.setParameters(参数);
camera.start preVIEW();
}
好了,你的文字你谈论捕获的图像,但我没有看到你的code任何事情拍照,无论如何,如果你想获得一个集中的照片,你必须做的是注册一个AutoFocusCallback拍照获得焦点时:
Camera.AutoFocusCallback mAutoFocusCallback =新Camera.AutoFocusCallback(){
@覆盖
公共无效onAutoFocus(布尔成功,相机摄像头){
camera.takePicture(NULL,NULL,mPictureCallbackRaw);
}
};Camera.PictureCallback mPictureCallbackRaw =新Camera.PictureCallback(){
公共无效onPictureTaken(字节[]数据,相机C){
//(...)
}
};公共无效takeFocusedPicture(){
mCamera.autoFocus(mAutoFocusCallback);
}
My issue captured image is looking blurry in my application where as the image that is captured with the device camera component is looking good - something auto zoom effect is going once user click on capture button. can some one help me to achieve this scenario how and where should i apply.
here is the code:
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();
}
Well, on your text you talk about capturing a image, but I don't see anything in your code about taking a picture, Anyway, if you want to obtain a focused photo, what you have to do is register a AutoFocusCallback to take a picture when focus is obtained:
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);
}
.
这篇关于捕捉的相机图像正在模糊的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!