gpt4 book ai didi

android - 如何在Kotlin中将res中的ImageView转换为Base64字符串

转载 作者:行者123 更新时间:2023-12-02 13:39:51 26 4
gpt4 key购买 nike

我想要请求Flask服务器。
所以,我在Kotlin(Android Studio)中将img转换为JSON数据
尽管JSON数据可以很好地从服务器发送和接收,但是传输的数据的大小是原始数据的五倍。
我应该怎么做才能从服务器获取确切的数据?
简单服务器代码(python)...

    print(len(request.json['file']))
img_data = base64.b64decode(request.json['file'])
filename = 'received_now_starry_night.png'
with open(filename, 'wb') as f:
f.write(img_data)


dic = {
"msg":"hello"
}
return jsonify(dic)
Android Studio,kotlin代码...
   val bitmap:Bitmap = BitmapFactory.decodeResource(resources, R.drawable.starry_night)
val bos:ByteArrayOutputStream = ByteArrayOutputStream()
bitmap.compress(Bitmap.CompressFormat.PNG, 100, bos)
val image:ByteArray = bos.toByteArray()

val base64Encoded = java.util.Base64.getEncoder().encodeToString(image)

val rootObject = JSONObject()
rootObject.put("file", base64Encoded)

最佳答案

要将图像转换为Base64 String:
您还可以创建调整大小的位图并将其压缩以减小大小

    private fun CreateImageStringFromBitmap(): String {

val bitmap:Bitmap = BitmapFactory.decodeResource(resources, R.drawable.starry_night)

val resized = Bitmap.createScaledBitmap(
bitmap:Bitmap, (desired width).toInt(),
(desired height).toInt(), true
)

val stream = ByteArrayOutputStream()
resized.compress(Bitmap.CompressFormat.PNG, 75, stream)
val byteArray: ByteArray = stream.toByteArray()

return Base64.encodeToString(byteArray, Base64.DEFAULT)
}

关于android - 如何在Kotlin中将res中的ImageView转换为Base64字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64587628/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com