gpt4 book ai didi

Android SurfaceView 预览模糊

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:48:15 25 4
gpt4 key购买 nike

我有一个简短的问题。我正在使用 Android 的 SurfaceView 拍照并保存。然而,预览尺寸和图片质量本身都很糟糕;就像,它非常模糊。图片质量根本没有清晰度。

这是我初始化 surfaceView 的地方:

                    camera.setDisplayOrientation(90);
Parameters parameters = camera.getParameters();
parameters.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);
parameters.setExposureCompensation(0);
parameters.setPictureFormat(ImageFormat.JPEG);
parameters.setJpegQuality(100);

Camera.Size picSize = getOptimalPreviewSize(parameters.getSupportedPreviewSizes(),
getResources().getDisplayMetrics().widthPixels,
getResources().getDisplayMetrics().heightPixels);

parameters.setPictureSize(picSize.width, picSize.height);
parameters.setPreviewSize(picSize.width, picSize.height);

camera.setParameters(parameters);
camera.setPreviewDisplay(holder);
camera.startPreview();

getOptimalPreviewSize() 返回 parameters.getSupportedPreviewSizes() 可用的最佳大小。它返回的尺寸是 1280x720,这是我的手机支持的最佳尺寸。但是,surfaceView 还是很模糊。我做的事情有什么明显的错误吗,或者有没有办法优化 surfaceView?谢谢。

最佳答案

图像和预览可能看起来模糊的原因有两个

1) 您设置图片大小和预览大小的方式有误。您必须查询支持的尺寸并确定最适合您的尺寸并从您获得的列表中设置尺寸。你不能给出仲裁值。检查此示例应用程序以了解实现细节 - https://github.com/josnidhin/Android-Camera-Example

2) 您必须将相机设置为自动对焦模式,这样它才会自动对焦。 (更好的是通过适当的用户界面实现触摸对焦)。相机启动后,只需设置以下

private void setCamFocusMode(){

if(null == mCamera) {
return;
}

/* Set Auto focus */
Parameters parameters = mCamera.getParameters();
List<String> focusModes = parameters.getSupportedFocusModes();
if (focusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE)) {
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
} else if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
}

mCamera.setParameters(parameters);
}

确保您在 list 中拥有适当的权限

希望对你有帮助

问候,嘘

关于Android SurfaceView 预览模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27021347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com