Камера 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();
а затем записать массив "квадрат" в новый файл ... Проблема в том, что я получаю изображение из линий ... есть проблема с преобразованием, которое я сделал