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

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

пример

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

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

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

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

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

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

Ответы на вопрос(2)

Ваш ответ на вопрос