Android - Как заблокировать разрешение камеры на 640 х 480 - PullRequest
1 голос
/ 31 января 2012

Я хочу заблокировать разрешение камеры для съемки фотографий размером менее 640x480 пикселей. Могу ли я это сделать?

Это нужно сделать, потому что фотографии размером более 640x480 делают их показ очень медленным, иногда даже приводят к сбою моего приложения.
Если это невозможно, есть какой-то способ изменить размер моего изображения на SDкарта

Ответы [ 2 ]

3 голосов
/ 08 марта 2012

Вы можете изменить размер изображения даже перед сохранением его на 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();

Надеюсь, это помогло.Приветствия

0 голосов
/ 31 января 2012

Вы можете попытаться получить минимально возможное разрешение

  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);
  }

Или остановите цикл с нужным разрешением.

Взято с здесь (commonsguy github)

...