我正在尝试将android.hardware.camera2图像保存为无损格式.
我已经使用杂乱的代码为JPEG(有损)和DMG(原始的,但庞大而又难以使用的)工作了:
private fun save(image: Image, captureResult: TotalCaptureResult) {
val fileWithoutExtension = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "myimage_${System.currentTimeMillis()}")
val file: File = when (image.format) {
ImageFormat.JPEG -> {
val buffer = image.planes[0].buffer
val bytes = ByteArray(buffer.remaining())
buffer.get(bytes)
val file = File("$fileWithoutExtension.jpg")
file.writeBytes(bytes)
file
}
ImageFormat.RAW_SENSOR -> {
val dngCreator = DngCreator(mode.characteristics, captureResult)
val file = File("$fileWithoutExtension.dmg")
FileOutputStream(file).use { os ->
dngCre