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

时间:2017-10-11 04:16:48

标签: java android image

每次更新相同的图片时,图像压缩方法都会降低图像质量。

 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;
}

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

1 个答案:

答案 0 :(得分:2)

首先使用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;
相关问题