Base64 对图片编码解码的工具类
用 Base64 将图片编码解码,并提供转换成Bitmap的工具类
package com.cachecats.oldbook.utils;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
/**
* Created by Administrator on 2016/8/7.
*/
public class Base64Utils {
/**
* 将图片以Base64方式编码为字符串
* @param url 图片的绝对路径(例如:D:\\jsontest\\abc.jpg)
* @return 编码后的字符串
*/
public static String encodeImage(String url) {
byte[] bytes = new byte[0];
try {
FileInputStream fis = new FileInputStream(url);
bytes = new byte[fis.available()];
fis.read(bytes);
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
return Base64.encodeToString(bytes, Base64.NO_WRAP); //设置为不换行
}
/**
* 将以Base64方式编码的字符串解码为byte数组
*
* @param str 以Base64方式编码的字符串
* @return 解码后的byte数组
*/
public static byte[] decode(String str) {
return Base64.decode(str, Base64.DEFAULT);
}
/**
* 通过Base64将Bitmap转换成Base64字符串
*
* @param bit
* @return
*/
public String Bitmap2StrByBase64(Bitmap bit) {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
bit.compress(Bitmap.CompressFormat.JPEG, 100, bos);//参数100表示不压缩
byte[] bytes = bos.toByteArray();
return Base64.encodeToString(bytes, Base64.DEFAULT);
}
/**
* 将数组转化成bitmap
* @param b
* @return
*/
public Bitmap Bytes2Bimap(byte[] b) {
if (b.length != 0) {
return BitmapFactory.decodeByteArray(b, 0, b.length);
} else {
return null;
}
}
}