What is the code to transform an image (maximum of 200 KB) into a Base64 String?

我需要知道如何使用安卓系统,因为我必须在我的主应用程序中添加将图像上传到远程服务器的功能,将它们作为字符串放入数据库的一行.

我在Google和Stack Overflow中搜索,但我找不到我负担得起的简单示例,我也找到了一些示例,但它们不是在谈论如何转换为字符串.然后,我需要转换为字符串,以便通过JSON上传到我的远程服务器.

推荐答案

您可以使用Base64 Android类:

String encodedImage = Base64.encodeToString(byteArrayImage, Base64.DEFAULT);

不过,您必须将图像转换为字节array.下面是一个示例:

Bitmap bm = BitmapFactory.decodeFile("/path/to/image.jpg");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, baos); // bm is the bitmap object
byte[] b = baos.toByteArray();

* Update *

如果您使用的是较旧的SDK库(因为您希望它能在具有较旧版本操作系统的手机上工作),那么就不会打包Base64类(因为它刚刚在API级别8即版本2.2中发布).

请查看本文,了解解决方法:

100

Android相关问答推荐

三星上的某些应用程序已禁用通知权限切换

如何处理谷歌未经证实的应用程序拒绝?

懒惰的垂直网格中盒子的重量-Jetpack组合

如何使用Jetpack Compose实现此底表?

在带有REACT-Native-CLI的开发和生产中使用Firebase的最佳实践

如何在Android Studio的LinearLayout中禁用阴影

Jetpack Compose:带芯片的Textfield

如何在Android中将以前的数据保存在复选框中?

如何显示具体的商品数量?

Clean MVVM 架构中的 API 响应处理

如何正确创建可拖动的浮动视图?

页面标题未显示在内容页面上

Android Studio Relay插件(版本0.3.07)错误

未解决的参考:pagerTabIndicatorOffset

如何使用 Jetpack Compose 制作两个圆圈

错误:构建 react-native 应用程序时包 com.facebook.react.bridge 不存在

协程中的 Job.Cancel 与 Scope.Cancel 有什么区别?

如何将设备屏幕位置转换为发送事件位置?

Jetpack Compose:mutableStateOf 不随流量更新

如何在 Jetpack Compose 中填充矢量图像的背景?