Использование Kotlin для сохранения файла в path
в tmpPath
:
Files.newInputStream(path).use { inputStream ->
Files.newOutputStream(tmpPath).use { tmpOutputStream ->
BitmapFactory
.decodeStream(inputStream)
.compress(Bitmap.CompressFormat.JPEG, 30, tmpOutputStream)
}
}
Редактировать: убедитесь, что вы проверили возможность неудачного декодирования (и возврата нуля), а также того, что сжатие действительно сработало (логический тип возврата).
val success: Boolean = Files.newInputStream(path).use { inputStream ->
Files.newOutputStream(tmpPath).use { tmpOutputStream ->
BitmapFactory
.decodeStream(inputStream)
?.compress(Bitmap.CompressFormat.JPEG, config.qualityLevel, tmpOutputStream)
?: throw Exception("Failed to decode image")
}
}
if (!success) {
throw Exception("Failed to compress and save image")
}