如何在Kotlin中将ImageView转换为ByteArray

5

如何在 Kotlin Android 中将 ImageView 转换为 ByteArray

在 Java 中:

Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
ByteArrayOutputStream stream=new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream);
byte[] image=stream.toByteArray();

return image

2
您可以将以下代码复制并粘贴到Android Studio的Kotlin文件中,它会被转换为Kotlin代码。 - zsmb13
2个回答

23

这里使用的是Java到Kotlin转换器。

val bitmap = (image.getDrawable() as BitmapDrawable).getBitmap()
val stream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream)
val image = stream.toByteArray()

2
注意:据我所知,PNG是无损的,质量参数没有影响。 - Shubham AgaRwal

3
这可能会对您有所帮助,
private fun imageToBitmap(image: ImageView): ByteArray {
    val bitmap = (image.drawable as BitmapDrawable).bitmap
    val stream = ByteArrayOutputStream()
    bitmap.compress(Bitmap.CompressFormat.PNG, 90, stream)

    return stream.toByteArray()
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接