Камера Android. Как взять определенный «прямоугольник» из массива байтов?

Я создал приложение, которое снимает и сохраняет фотографии. У меня есть предварительный просмотр и наложение поверх этого предварительного просмотра. Наложение определяет квадрат (область вокруг квадрата показывает предварительный просмотр немного темнее), как вы можете видеть на изображении:

пример

Что мне нужно сделать, так это извлечь часть изображения, где квадрат является. Квадрат определяется следующим образом:

    Rect frame = new Rect(350,50,450,150);

Как я могу это сделать? у меня есть массив байтов (данные byte[]), который я могу сохранить, но я хочу изменить приложение так, чтобы сохранялась только квадратная область.

Изменить: я пробовал следующее:

int[] pixels = new int[100000];
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data.length);
            bitmap.getPixels(pixels, 0, 480, 350, 50, 100, 100);
            bitmap = Bitmap.createBitmap(pixels, 0, 100, 100, 100, Config.ARGB_4444);
            bitmap.compress(CompressFormat.JPEG, 0, bos);
            byte[] square = bos.toByteArray();

а затем записать массив "квадрат" в новый файл... Проблема в том, что я получаю изображение, состоящее из линий... проблема с преобразованием, которое я сделал

10
задан Eyal 12 March 2012 в 16:29
поделиться