Как получить хорошее качество растрового изображения после захвата с камеры в Android? - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь получить растровое изображение после захвата изображения с камеры.Сначала я сохраняю изображение в памяти, а затем получаю растровое изображение из пути к изображению.

private String imageFilePath =null;
    private void openCameraIntent() {
                Intent pictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                if(pictureIntent.resolveActivity(getPackageManager()) != null){
                    File photoFile = null;
                    try {
                        photoFile = createImageFile();
                    } catch (IOException ex) {

                    }
                    if (photoFile != null) {
                         photoURI = FileProvider.getUriForFile(this, BuildConfig.APPLICATION_ID +".fileprovider", photoFile);
                         pictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
                        startActivityForResult(pictureIntent, REQUEST_CAPTURE_IMAGE);
                    }
                }
            }

        private File createImageFile() throws IOException {
                String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",
                                Locale.getDefault()).format(new Date());
                String imageFileName = "IMG_" + timeStamp + "_";
                File storg =
                        getExternalFilesDir(Environment.DIRECTORY_PICTURES);
                File image = File.createTempFile(
                        imageFileName,  /* prefix */
                        ".jpg",         /* suffix */
                        storg      /* directory */
                );

                imageFilePath = image.getAbsolutePath();
                return image;
            }

public Bitmap bitmapimage(String path) {
        return BitmapFactory.decodeFile(path);
    }

Но в моем случае я не хочу сохранять изображение в памяти.Я хочу получить растровое изображение после захвата изображения.Я пробовал, но получаю очень низкое качество изображения.Как я могу получить хорошее качество растрового изображения без сохранения в памяти.пожалуйста, помогите мне сделать это.Спасибо

1 Ответ

1 голос
/ 15 марта 2019

Это правда.Камера может передавать только изображение с высоким разрешением в виде файла.Вы можете удалить его, как только ваше приложение восстановит управление, даже если это обычно выполняется в onActivityResult() обратном вызове.

Обратите внимание, что к тому времени изображение будет проиндексировано в устройстве MediaStore, ak a.Галерея.

Альтернативой является использование API камеры вместо намерения.Могут помочь некоторые библиотеки-обертки, такие как фотоаппарат.

...