【问题标题】:How to get the biggest suported picture size in device?如何获得设备中支持的最大图片尺寸?
【发布时间】:2012-11-22 17:42:18
【问题描述】:

我想用支持的最高分辨率使用SurfaceViewPictureCallBack 拍照。

这是适用于我的 Galaxy Nexus 的配置:

    Camera.Parameters params = camera.getParameters();
    List<Camera.Size> sizes = params.getSupportedPictureSizes();
    Toast.makeText(MainActivity.this,"Supported Sizes: " + sizes,Toast.LENGTH_LONG).show();

    params.setPictureSize(2592, 1944);
    params.setJpegQuality(100);

    camera.setParameters(params);

2592 x 1944 是我设备的最佳分辨率,但我如何从var sizes 获得任何设备的最高分辨率?

感谢您的帮助!

【问题讨论】:

  • 对支持的图片尺寸进行排序怎么样?然后由您来确定标准。 IE。您可以先按宽度排序,然后按高度排序。或者,将宽度和高度相乘(因为这将为您提供像素总数/“最高分辨率”)并将其用于排序。在这两种情况下,将Collections.sort(...) 与您自己的Comparator&lt;Camera.Size&gt; 一起使用是最简单的。

标签: android camera resolution image


【解决方案1】:

遍历您的列表,并乘以高度和宽度以获得像素数并保留最大索引的变量

int max = 0;
int index = 0;

for (int i = 0; i < List.size(); i++){
     Size s = List.get(i);
     int size = s.height * s.width;
     if (size > max) {
         index = i;
         max = size;
     }
}
params.setPictureSize(List.get(index).width, List.get(index).height);

【讨论】:

  • 这很好,但我从widthheight中删除了(),例如:params.setPictureSize(List.get(index).width, List.get(index).height);
猜你喜欢
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-13
  • 2023-03-07
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多