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

}

猜你喜欢

转载自blog.csdn.net/solocoder/article/details/83685559