gpt4 book ai didi

java - Base64 编码位图返回冗长的字符串

转载 作者:行者123 更新时间:2023-11-30 11:22:26 25 4
gpt4 key购买 nike

我使用以下代码对我的位图进行编码:

public static String convertBitmapToBase64String(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();

String encodedImage = null;
try {
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] byteArrayImage = baos.toByteArray();

encodedImage = Base64
.encodeToString(byteArrayImage, Base64.DEFAULT);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return encodedImage;
}

但此方法返回一个很长的字符串,因此我无法将图像上传到服务器。

请帮忙。

提前致谢。

最佳答案

对于实际大小,base64 无能为力。编码将不可避免地增加一个固定百分比的大小(大约 37% IIRC)。

做的唯一一件事就是缩小图像数据。您在这里使用了不合理的质量设置:

bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);

100% 质量的 JPEG 有点矫枉过正,83-90% 对大多数图像来说更合理。如果您需要无损图像质量,请尝试 PNG。 JPEG 不是为 100% 质量而设计的,生成的文件很可能会比您最初使用无损图像格式更大。

关于java - Base64 编码位图返回冗长的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21711094/

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