Я читаю изображение со своего устройства и после применения фильтров хочу сохранить в том же месте, откуда оно было прочитано. Я получаю изображение через объект uri, но не могу сохранить его в той же папке, используя этот uri. Я могу хранить изображение в произвольном месте, используя Environment.getExternalStorageDirectory()
, но не в той же папке. Редактировать 1 Вот как я получаю свое изображение
uri = data.getData();
ParcelFileDescriptor parcelFileDescriptor =
getContentResolver().openFileDescriptor(uri, "r");
FileDescriptor fileDescriptor =parcelFileDescriptor.getFileDescriptor();
original = BitmapFactory.decodeFileDescriptor(fileDescriptor);
parcelFileDescriptor.close();
imageView.setImageBitmap(original);
Вот как я сохраняю его обратно
imageView1 = findViewById(R.id.image_view);
File dir = Environment.getExternalStorageDirectory();
File path = new File(dir, "copy.jpg");
Bitmap bitmap = ((BitmapDrawable) imageView1.getDrawable()).getBitmap();
FileOutputStream fileOutputStream = null;
try {
fileOutputStream = new FileOutputStream(path);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);
Toast.makeText(this, String.valueOf(path), Toast.LENGTH_LONG).show();
} catch (IOException e) {
Log.i("cs50", "File not saved");
} finally {
try {
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}