【发布时间】:2020-10-29 08:44:02
【问题描述】:
我想向 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)
【问题讨论】:
-
您已经将 res 可绘制对象转换为 Base64 字符串,并且可以正常工作,对吧?
-
我不知道那个 kotlin 代码。你的意思是kotlin代码的第一个代码?
-
看起来你有一个有效的 kotlin 代码,可以将图像转换为 base64 字符串
标签: android kotlin base64 encode