Câmera Android - Como tirar um “retângulo” específico da matriz de bytes?

Criei um aplicativo que tira e salva fotos. Eu tenho uma visualização e uma sobreposição em cima dessa visualização. A sobreposição define um quadrado (a área ao redor do quadrado mostra a visualização um pouco mais escura), como você pode ver na imagem:

exempl

O que eu preciso fazer é extrair a parte da imagem onde está o quadrado. O quadrado é definido assim:

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

Como eu posso fazer isso? eu tenho a matriz de bytes (byte [] data) que posso salvar, mas quero alterar o aplicativo para que apenas a área quadrada seja salv

Edit: eu tentei o seguinte:

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

e, em seguida, escreva a matriz "square" em um novo arquivo ... O problema é que eu recebo uma imagem feita de linhas ... há um problema com a transformação que eu fiz

questionAnswers(4)

yourAnswerToTheQuestion