Android 如何从CameraX压缩图像/字节数组
我正在使用CameraX插件,当我拍照时,它会给我一个android.media.Image。 现在我想通过网络电话将图像作为byteArray发送。我找到了一个可以为我创建byteArray的函数:Android 如何从CameraX压缩图像/字节数组,android,Android,我正在使用CameraX插件,当我拍照时,它会给我一个android.media.Image。 现在我想通过网络电话将图像作为byteArray发送。我找到了一个可以为我创建byteArray的函数: private suspend fun createBytesFromImage(input: Image): ByteArray { return withContext(ioDispatcher) { val buffer = input.planes[0].buffe
private suspend fun createBytesFromImage(input: Image): ByteArray {
return withContext(ioDispatcher) {
val buffer = input.planes[0].buffer
buffer.rewind()
val bytes = ByteArray(buffer.capacity())
buffer.get(bytes)
return@withContext bytes
}
}
图像非常大,我想压缩/缩小它,这样可以节省一些带宽。如何使用android.media.Image或byteArray实现这一点
(我知道我可以从byteArray生成位图,压缩/缩小位图并从中生成新的byteArray,但这似乎是错误的。如果可能的话,我正在寻找另一种方法)使用
.setTargetResolution(大小(10801920))
打开ImageCapture.Builder
根据您可以使用的分辨率计算文件大小