当前位置: 首页 > 面试题库 >

如何在不压缩图像的情况下将图像转换为Base64字符串?

葛俊
2023-03-14
问题内容

每次更新同一张图片时,图像质量都会通过图像压缩方法降低。

 public String BitMapToString(Bitmap bitmap) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
    byte[] b = baos.toByteArray();
    base64Image = Base64.encodeToString(b, Base64.DEFAULT);
    return base64Image;
}

我不想一次又一次地压缩图像。请提出一些建议。


问题答案:

首先,使用PNG压缩不会丢失图像质量。

如果仍要获取不压缩的字节,则可以尝试以下操作:

ByteBuffer buffer = ByteBuffer.allocate(bitmap.getRowBytes() * bitmap.getHeight());
bitmap.copyPixelsToBuffer(buffer);
byte[] data = buffer.array();

要从Bitmap字节数组取回:

Bitmap bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
bitmap.copyPixelsFromBuffer(ByteBuffer.wrap(data));
return bitmap;


 类似资料:
  • 问题内容: 每次更新同一张图片时,图像质量都会通过图像压缩方法降低。 我不想一次又一次地压缩图像。请提出一些建议。 问题答案: 首先,使用PNG压缩不会丢失图像质量。 如果仍要获取不压缩的字节,则可以尝试以下操作: 要从字节数组取回:

  • 问题内容: 我将图像转换为 base64 字符串,并将其从android设备发送到服务器。现在,我需要将该字符串改回图像并将其保存在数据库中。 有什么帮助吗? 问题答案: 尝试这个:

  • 问题内容: 我正在尝试使用jQuery插件即crop.js裁剪/调整用户个人资料图像的大小,该插件通过ajax将用户图像作为base64发送给我的控制器 但我无法解码此base64 字符串作为图像,你们可以指导我如何将base64字符串作为图像保存在服务器上吗? 问题答案: 假设有几件事,您知道输出文件名是什么,并且您的数据以字符串形式出现。我确定您可以修改以下内容以满足您的需求: 请注意,这只是

  • 我正在尝试使用jquery插件裁剪/调整用户配置文件图像的大小,即crop.js,它将用户图像作为base64通过ajax发送到我的控制器

  • 我正在使用Java压缩一个图像。

  • 问题内容: 我正在尝试将base64图像字符串转换为图像文件。 使用以下代码将其转换为图像文件: 但是我遇到了错误,这是怎么了? 问题答案: 问题是编码内容中包含该内容。当base64函数对其进行解码时,这将导致无效的图像数据。像这样在解码字符串之前先删除函数中的数据。