Невозможно получить фактическое URI изображения, щелкнувшего с камеры - PullRequest
0 голосов
/ 16 мая 2019

После реализации Camera2 Api для щелчка по изображению я получаю изображение в этом слушателе

private ImageReader.OnImageAvailableListener imageAvailableListener = new ImageReader.OnImageAvailableListener() {
        @Override
        public void onImageAvailable(ImageReader reader) {

            Image img                   = reader.acquireLatestImage();
            final Image.Plane[] planes  = img.getPlanes();
            final ByteBuffer buffer     = planes[0].getBuffer();
            byte[] byteArray            = new byte[buffer.remaining()];
            buffer.get(byteArray);
            bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
            uri = getImageUri(getContext(), bmp);
        }
    };

Я попытался проанализировать Image до Bitmap, чтобы получить изображение URI, используя этот метод

private Uri getImageUri(Context context, Bitmap inImage) {
        this.saveToInternalStorage(inImage);
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
        String path = MediaStore.Images.Media.insertImage(context.getContentResolver(), inImage, "CAPTURE" + captureCount, null);
        return Uri.parse(path);
    }

Но изображение uri, которое я получаю из вышеописанного метода, когда я пытаюсь использовать его для отображения изображения в ImageView, ничего не показывает, но я вижу изображение в клике в галерее.

Изображение URI, которое я получаю, начинается как external/**/<some number>

Я пытаюсь получить URI кликнувшего изображения и использовать его для редактирования.

Если есть какой-либо другой способ отредактировать изображение, может быть как использование растрового изображения или какой-либо другой формы, пожалуйста, укажите.

...