android - 在表面 View 中打开的android相机的最佳相机参数是什么

标签 android camera preview

下面是我使用 flaten() 打印的 Android 相机参数。我使用表面 View 并使用 camera.open() 手动打开我的相机。我使用 setParameter() 设置 camera.paramter。

-max=30;zoom=0;taking-picture-zoom=0;zoom-supported=true;sharpness-min=0;sharpness=10;contrast=5;whitebalance=auto;jpeg-quality=100;preview-format-values=yuv420sp;jpeg-thumbnail-quality=75;preview-format=yuv420sp;preview-size=576x432;focal-length=4.92;iso=auto;meter-mode=meter-center;front-camera-mode=mirror;flash-mode-values=off,auto,on,torch;preview-frame-rate-values=15;preview-frame-rate=15;focus-mode-values=auto,infinity;jpeg-thumbnail-width=768;jpeg-thumbnail-size-values=768x576,640x480,512x384,0x0;zoom-ratios=100,114,131,151,174,200;saturation-def=5;preview-size-values=1280x720,800x480,768x432,720x480,640x480,576x432,480x320,400x240,384x288,352x288,320x240,272x272,240x240,240x160,176x144;smart-contrast=off;picture-size-values=3264x2448,3264x1952,2592x1952,2592x1552,2048x1536,2048x1216,1600x1200,1280x960,1280x768,1024x768,640x480,640x384,512x384,400x400,272x272;contrast-min=0;min-exposure-compensation=-4;brightness-min=0;antibanding=auto;taking-picture-zoom-min=0;saturation-min=1;contrast-max=10;vertical-view-angle=38;taking-picture-zoom-max=30;contrast-def=5;brightness-max=6;horizontal-view-angle=49.5;brightness=3;jpeg-thumbnail-height=576;cam-mode=0;focus-mode=auto;sharpness-def=10;front-camera-mode-values=mirror,reverse;picture-format-values=jpeg;saturation-max=10;max-exposure-compensation=4;exposure-compensation=0;exposure-compensation-step=0.5;flash-mode=off;effect-values=none,mono,negative,solarize,sepia,posterize,aqua;meter-mode-values=meter-average,meter-center,meter-spot;picture-size=1024x768;max-zoom=5;effect=none;saturation=5;whitebalance-values=auto,incandescent,fluorescent,daylight,cloudy-daylight;picture-format=jpeg;brightness-def=3;iso-values=auto,deblur,100,200,400,800,1250;antibanding-values=off,50hz,60hz,auto**

**

  • 我的相机图像在所有设备上并不一致。肯定 Droid 和旧手机存在图像模糊和图像缩小的问题。是 有什么具体的参数需要微调吗??

**

最佳答案

这与不同手机的不同预览尺寸有关。

我在一个相机预览相关的android项目中使用了以下方法:

surfaceCreated 方法内部:

Camera camera = Camera.open(CameraInfo.CAMERA_FACING_BACK);
final Camera.Parameters params = camera.getParameters();
final Size size = getOptimalSize();
params.setPreviewSize(size.width, size.height);
camera.setParameters(params);

在同一 Activity 中:

private Size getOptimalSize() {
    Camera.Size result = null;
    final Camera.Parameters parameters = camera.getParameters();
    Log.i(Preview.class.getSimpleName(), "window width: " + getWidth() + ", height: " + getHeight());
    for (final Camera.Size size : parameters.getSupportedPreviewSizes()) {
        if (size.width <= getWidth() * PREVIEW_SIZE_FACTOR && size.height <= getHeight() * PREVIEW_SIZE_FACTOR) {
            if (result == null) {
                result = size;
            } else {
                final int resultArea = result.width * result.height;
                final int newArea = size.width * size.height;

                if (newArea > resultArea) {
                    result = size;
                }
            }
        }
    }
    if (result == null) {
        result = parameters.getSupportedPreviewSizes().get(0);
    }
    Log.i(Preview.class.getSimpleName(), "Using PreviewSize: " + result.width + " x " + result.height);
    return result;
}

当然我应该补充一点,我们使用的因素是: PREVIEW_SIZE_FACTOR = 1.30;

关于android - 在表面 View 中打开的android相机的最佳相机参数是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18153650/

相关文章:

camera - QX1,通过 API 的手动拍摄模式 (M)

iOS10,相机权限 - 黑屏 "camera app"

ios - 应用视频预览

Android 在没有服务器的情况下如何检查应用程序更新?

java - Android Java 类转换

java - Android 相机,内部列表选项?

reactjs - 像亚马逊一样具有放大效果的 React 图片库

android - Camera2 可以连续访问相机预览图像

android - SocialSharing PhoneGap 插件 URL_NOT_SUPPORTED

java - 刷新或重绘 Fragment 的 View