После реализации 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 кликнувшего изображения и использовать его для редактирования.
Если есть какой-либо другой способ отредактировать изображение, может быть как использование растрового изображения или какой-либо другой формы, пожалуйста, укажите.