Android - изображение с камеры или галереи иногда слегка поворачивается - PullRequest
0 голосов
/ 05 апреля 2020

Иногда, когда я загружаю изображение из галереи или камеры, изображение поворачивается не под углом 90 градусов, а всего лишь примерно на 5 градусов, и я не могу объяснить это, поскольку это происходит не постоянно, а случайно, и это не имеет никакого отношения к реальному изображению, иногда оно поворачивает определенное изображение, а иногда оно не поворачивает одно и то же изображение. Я уже пытался установить поворот на фактическое вращение изображения после выбора, но почему-то это все равно, и я не могу найти людей с такой же проблемой, поэтому спасибо всем за помощь в этом.

Вот мой код для выбора изображения:

            Intent galleryIntent = new Intent(Intent.ACTION_PICK,
                    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

            startActivityForResult(galleryIntent, GALLERY);
    }

    private void takePhotoFromCamera() {
        Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(intent, CAMERA);
    }


    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == this.RESULT_CANCELED) {
            return;
        }
        if (requestCode == GALLERY) {
            if (data != null) {
                Uri contentURI = data.getData();
                try {
                    Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), contentURI);
                    select.setVisibility(View.INVISIBLE);
                    rotate.setVisibility(View.VISIBLE);
                    reselect.setVisibility(View.VISIBLE);
                    next.setVisibility(View.VISIBLE);
                    Toast.makeText(SelectImageActivity.this, R.string.image_saved, Toast.LENGTH_SHORT).show();
                    imageView.setImageBitmap(bitmap);
                    contentURIOut = contentURI;
                    publicBitMap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), contentURI);
                } catch (IOException e) {
                    e.printStackTrace();
                    Toast.makeText(SelectImageActivity.this, R.string.image_failed_to_save, Toast.LENGTH_SHORT).show();
                }
            }

        } else if (requestCode == CAMERA) {
            publicRequestCode = requestCode;
            Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
            imageView.setImageBitmap(thumbnail);
            publicBitMap = thumbnail;
            setUpTempFile();
            contentURIOut =  Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/APPNAME/PHOTO-" + publicTempFileCreationTime + ".png"));
            select.setVisibility(View.INVISIBLE);
            rotate.setVisibility(View.VISIBLE);
            reselect.setVisibility(View.VISIBLE);
            next.setVisibility(View.VISIBLE);
            Toast.makeText(SelectImageActivity.this, R.string.image_saved, Toast.LENGTH_SHORT).show();
        }

        if (requestCode == AppSettingsDialog.DEFAULT_SETTINGS_REQ_CODE) {

        }
    } ```
...