我正在使用CameraX插件,在拍照时会给我一个android.media.Image。现在,我想将该图像作为byteArray发送到WebCall。我找到了一个可以为我创建byteArray的函数:
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,但这似乎不太对。如果可能,我正在寻找另一种方法)