Используя пакет Compressor, доступный из 'id.zelory: compressor', пытаясь понять, почему генерируется исключение java io.IOException для .compressToBitmap (actualFile);
У меня есть это в настоящее время
compressedImageBitmap = new Compressor(this)
.setMaxHeight(800)
.setMaxWidth(800)
.setQuality(2)
.compressToBitmap(image_file);
и пытались реализовать это (ниже) .... но последняя строка (где .compressToBitmap () или .compressToFile ()) всегда генерирует ошибку io.IOException
compressedImage = new Compressor(this)
.setMaxHeight(800)
.setMaxWidth(800)
.setQuality(2)
.setCompressFormat(Bitmap.CompressFormat.WEBP)
.setDestinationDirectoryPath(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES).getAbsolutePath())
.compressToFile(image_file);
Полный код ниже
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
if (resultCode == RESULT_OK) {
resultUri = result.getUri();
File image_file = new File(resultUri.getPath());
compressedImageBitmap = new Compressor(this)
.setMaxHeight(800)
.setMaxWidth(800)
.setQuality(2)
.compressToBitmap(image_file);
post_imageView.setImageBitmap(compressedImageBitmap);
} else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
Exception error = result.getError();
}
}
}
Он предназначен для того, чтобы взять файл образа и эффективно / быстро обработать его для хранения базы данных Firebase позже