Kotlin中的二进制请求主体

hgtggwj0  于 2023-01-31  发布在  Kotlin
关注(0)|答案(2)|浏览(94)

我如何设置图像从imageview在二进制体在API端点?
我需要从ImageView中获取图像,并将其放入一个需要二进制值(jpg图像)的请求主体中。

mnemlml8

mnemlml81#

你可以将图像的位图表示转换为ByteArray,然后在请求正文中使用它。

val imageView: ImageView = findViewById(R.id.imageView)
val bitmap = (imageView.drawable as BitmapDrawable).bitmap
val byteArrayOutputStream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream)
val imageBytes = byteArrayOutputStream.toByteArray()
tktrz96b

tktrz96b2#

您的问题没有足够的上下文,例如示例代码。但请尝试以下操作:

//get drawable from your imageview
Drawabel drawable = imageVIew.getDrawable();
BitmapDrawable bitmapDrawable = ((BitmapDrawable) drawable);

//convert image to binary
Bitmap bitmap = bitmapDrawable.getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte[] imageInByte = stream.toByteArray();
ByteArrayInputStream bis = new ByteArrayInputStream(imageInByte);

byte[] imageInByte是您所要求的,但我也添加了对流的转换,以防您最终需要它。

相关问题