Android camara参数getZoomRatio()值与预期不符

Android camara参数getZoomRatio()值与预期不符,第1张

概述如果我使用以下参数获取缩放比例列表:parameter.getZoomRatios(),则返回值为100,114…200(对应于1x1.14x…2.0x缩放),但在相机预览中为200(2x缩放),图片显示的放大倍数超过2倍.在示例图像中,在1x处显示6cm的焦点,在2x变焦处显示2.5cm的眼睛…我期望在2x时的3.0cm.我还有另一种

如果我使用以下参数获取缩放比例列表:parameter.getZoomratios(),则返回值为100,114 … 200(对应于1x 1.14x … 2.0x缩放),但在相机预览中为200(2x缩放),图片显示的放大倍数超过2倍.在示例图像中,在1x处显示6cm的焦点,在2x变焦处显示2.5cm的眼睛…我期望在2x时的3.0cm.

我还有另一种解释这些值的方式吗?…其他人看到了吗?还是此设备/版本特定,还是我应该乘以某个常数或其他值(焦距)?我正在尝试将相机视图与应用程序的渲染视图进行匹配,并且在缩放时,这使匹配变得混乱.

代码在这里是标准的:

public voID setZoom(int pZoom){    final Camera.Parameters p = this.mCamera.getParameters();    if (p.isZoomSupported())    {        p.setZoom(pZoom);        this.mCamera.setParameters(p);    }}    public int getZoom( androID.harDWare.Camera camera)    {        int zoom = 100;        final Parameters p = camera.getParameters();        if (p.isZoomSupported())        {            final List<Integer> zoomratios = p.getZoomratios();            final int zoomIndex = p.getZoom();            if (zoomIndex < zoomratios.size())            {                zoom = zoomratios.get(zoomIndex);            }               //Log.d("zoom","ix:" + zoomIndex + " z:"+zoom);                 }                       return zoom;    }   

解决方法:

调用函数“ camera.getParameters().getZoomratios()”似乎是获取相机缩放比例的最安全方法.嗯,是这样,但是-据我所知-它在每个AndroID设备上的行为方式都不相同.

我已经测试了不同设备上的缩放比例:在华硕上调用getZoomratios()时,它返回了以下内容:
[100、125、150、175、200、225、250、275、300、325、350、375、400、425、450,
 475、500、525、550、575、600、625、650、675、700、725、750、775、800].
在这些缩放比例下,如果您在1倍变焦下测试6.0厘米,那么在2倍变焦下将得到3.0厘米.

但是,三星给我返回了以下列表:
[100、102、104、109、111、113、119、121、124、131、134、138、146、150、155,
159、165、170、182、189、200、213、222、232、243、255、283、300、319、364、400].
这些值有些奇怪,因为在1倍变焦下测试6.0厘米时,如果在2倍变焦下无法达到预期的3.0厘米,则这些值将不正确.当我在设备的标准相机应用程序上验证缩放系数时,我意识到缩放比例必须等距.我改用等距值生成了另一个缩放比例列表:[100、110、120、130、140、150、160、170、180、190、200、210、220、230、240、250、260、270, 280、290、300、310、320、330、340、350、360、370、380、390、400].

例如,如果我要将缩放比例设置为2倍,则将显示“ parameters.setZoom(20)”(请参阅​​原始的三星列表),这实际上是一个错误,因为我将无法获得预期的2倍.缩放,但3倍缩放(请参见生成的列表).

如果不信任您的zoomratios列表,请尝试生成您自己的zoomratios列表,并假定正确返回了最小(1X)和最大缩放值,并计算两个连续缩放比率之间的距离.顺便说一句,缩放比例列表的大小也是正确的,因此要计算两个连续缩放比例值之间的差异,可以使用以下公式:(greatestZoomratio-minimumZoomratio)/ numberOfZoomratioElements.

总结

以上是内存溢出为你收集整理的Android camara参数getZoomRatio()值与预期不符全部内容,希望文章能够帮你解决Android camara参数getZoomRatio()值与预期不符所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1086269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存