Android摄像头API ISO设置? [英] Android Camera API ISO Setting?
问题描述
请问有谁知道从哪里在Android SDK控制相机的ISO设置? 它应该可以作为HTC Desire的原生相机应用程序有ISO设置。
您应该看一看的方法压扁()
, unflatten( )
,获取(字符串键)
,设置(字符串键,字符串值)
的 android.hardware.Camera.Parameters
。
另外还要考虑<一个href="http://grep$c$c.com/file/repository.grep$c$c.com/java/ext/com.google.android/android/2.1_r2/android/hardware/Camera.java">source $ C $的该类℃。这可能会使事情更清晰。
首先,你需要获得 Camera.Parameters
。它Unflatten到字符串
和调查。我在HTC Desire的发展,以及一个得到以下字符串
:
因此,基本上有一个叫做关键 ISO值
检索支持的值和一键 ISO
持有电流值
您可以执行以下操作:
相机Cam = Camera.open();
Camera.Parameters camParams = cam.getParameters();
字符串supportedIsoValues = camParams.get(ISO值); //支持的值,逗号分隔字符串
camParams.set(异,(字符串类型)newValue);
cam.setParameters(camParams);
和参照不平参数,我会假设有ISO和曝光补偿设置之间的差异。
Would anyone know where to control the ISO setting for the camera from in the Android SDK ? It should be possible as the native camera application on the HTC Desire has ISO settings.
you should take a look at the methods flatten()
, unflatten()
, get(String key)
, set(String key, String value)
in android.hardware.Camera.Parameters
.
Also consider the source code of that class. It might make things clearer.
First you need to obtain the Camera.Parameters
. Unflatten it to a String
and investigate it. I am developing on a HTC Desire as well an get the following String
:
sharpness-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=640x480;focal-length=3.53;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=640;jpeg-thumbnail-size-values=640x480,512x384,384x288,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,160x120;smart-contrast=off;picture-size-values=2592x1952,2592x1456,2592x1936,2592x1728,2592x1552,2048x1536,2048x1360,2048x1216,2048x1152,1600x1200,1584x1056,1280x960,1280x848,1280x768,1280x720,1024x768,640x480,640x416,640x384,640x368,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=42.5;taking-picture-zoom-max=21;contrast-def=5;brightness-max=6;horizontal-view-angle=54.8;brightness=3;jpeg-thumbnail-height=480;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=2592x1952;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;enable-caf=off;antibanding-values=off,50hz,60hz,auto
So basically there is a key called iso-values
to retrieve the supported values and a key iso
which holds the current value.
You can do the following:
Camera cam = Camera.open();
Camera.Parameters camParams = cam.getParameters();
String supportedIsoValues = camParams.get("iso-values"); //supported values, comma separated String
camParams.set("iso", (String)newValue);
cam.setParameters(camParams);
And with reference to the unflattened parameters I would assume that there is a difference between the iso and exposure compensation settings.
这篇关于Android摄像头API ISO设置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!