1.将 png 图片 bitmap 转为 base64,再将 base64 转为 bitmap 后对比原图,透明部分出现了黑色背景
2.如果发现转换后的图片存在黑边,可以将图片格式改为 png
public class Base64Util {
public static String bitmap2Base64(Bitmap bitmap, int compress,Bitmap.CompressFormatformat{
if (bitmap == null) {
return null;
}
String result = null;
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
bitmap.compress(format != null ? format : Bitmap.CompressFormat.JPEG, compress, baos);
baos.flush();
baos.close();
byte[] bitmapBytes = baos.toByteArray();
result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (baos != null) {
baos.flush();
baos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return result;
}
/**
* base64 转为 bitmap
*
* @param base64Data
* @return
*/
public static Bitmap base642Bitmap(String base64Data) {
if (TextUtils.isEmpty(base64Data)) {
return null;
}
byte[] bytes = Base64.decode(base64Data, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
}
3.需要的地方调用 Bitmap bitmap = Base64Util.bitmap2Base64(source, 100, Bitmap.CompressFormat.PNG);