Android - Как заблокировать разрешение камеры на 640 х 480

1

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

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

Теги:
camera
image
resolution

2 ответа

3
Лучший ответ

Вы можете изменить размер изображения еще до сохранения его на SD-карту. В коде что-то вроде этого:

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

и после изменения размера сохраните его с кодом, я думаю, вы уже писали для сохранения.

Если вам нужно предоставить массив байтов, а не битмап для сохранения, вы можете использовать:

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

Надеюсь, это помогло. ура

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

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

Взято отсюда (commonsguy github)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню