Kotlin将InputImage返回InputStream
时间: 2023-07-27 11:30:22 浏览: 81
可以使用Kotlin中的`Bitmap`类来将`InputImage`对象转换为`InputStream`。以下是一个示例代码:
```kotlin
val image: InputImage = // your InputImage object
val mediaImage = image.image ?: return // if image is null, return
val buffer = mediaImage.planes[0].buffer
val bytes = ByteArray(buffer.remaining())
buffer.get(bytes)
val bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.size)
val outputStream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream)
val inputStream = ByteArrayInputStream(outputStream.toByteArray())
```
这段代码会将`InputImage`对象转换为`InputStream`,你可以根据需要进行修改和调整。
相关问题
以上InputImage是Imageview
非常抱歉,我理解错了你的问题。如果你想将`ImageView`中显示的图像转换为`InputStream`,可以尝试以下代码:
```kotlin
val drawable = imageView.drawable ?: return // if imageView has no image, return
val bitmap = (drawable as BitmapDrawable).bitmap
val outputStream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outputStream)
val inputStream = ByteArrayInputStream(outputStream.toByteArray())
```
这段代码将会从`ImageView`中获取`Drawable`对象,然后将其转换为`Bitmap`对象,并将其压缩为JPEG格式,最后将压缩后的数据转换为`InputStream`。
阅读全文