Android - 如何锁定640 x 480的相机分辨率

时间:2012-01-31 18:07:19

标签: android image camera resolution

我想锁定相机分辨率以拍摄640x480像素的照片,我可以这样做吗?

这需要完成'因为大于640x480的照片会使它们显得很慢,有时甚至会使我的应用程序崩溃。
如果无法做到这一点,有一些方法可以在SD卡上调整我的图片大小吗?

2 个答案:

答案 0 :(得分:3)

您可以在将图片保存到SD卡之前调整图片大小。在代码中,像这样:

Bitmap smallBitmap = Bitmap.createScaledBitmap(sourceBitmap, 640, 480, true);

并且在调整大小后用代码保存它我猜你已经为保存而写了..

如果你需要提供字节数组而不是Bitmap来保存,你可以使用:

ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
bMap.compress(CompressFormat.JPEG, 100, bos); // setup jpeg quality here
byte[] data = bos.toByteArray();

希望它有所帮助。 干杯

答案 1 :(得分:0)

您可以尝试获得最低分辨率

  private Camera.Size getBestPreviewSize(int width, int height,Camera.Parameters parameters) 
{
    Camera.Size result=null;

    for (Camera.Size size : parameters.getSupportedPreviewSizes()) {
      if (size.width <= width && size.height <= height) {
        if (result == null) {
          result=size;
        }
        else {
          int resultArea=result.width * result.height;
          int newArea=size.width * size.height;

          if (newArea > resultArea) {
            result=size;
          }
        }
      }
    }

    return(result);
  }

或者以你想要的分辨率停止循环。

取自here(commonsguy github)