图片工具类

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;


public class ImageUtils {
    public static final String CACHEDIR = Environment.getExternalStorageDirectory() + "/ll";


    public static boolean isMounted() {
        return Environment.MEDIA_MOUNTED.equals(
                Environment.getExternalStorageState());
    }

    public static void saveImg(String url, byte[] bytes) throws IOException {
        if (!isMounted()) return;

        File dir = new File(CACHEDIR);
        if (!dir.exists()) dir.mkdirs();

        FileOutputStream fos = new FileOutputStream(new File(dir, getName(url)));
        fos.write(bytes);
        fos.close();

    }

    public static void saveImg(String url, Bitmap bitmap) throws IOException {
        if (!isMounted()) return;

        File dir = new File(CACHEDIR);
        if (!dir.exists()) dir.mkdirs();

        //将图片对象写入到指定输出流中
        bitmap.compress(getFormat(url), 100,
                new FileOutputStream(new File(dir, getName(url))));

    }

    private static Bitmap.CompressFormat getFormat(String url) {
        // TODO 获取图片的格式
        String fileName = getName(url,0);
        if (fileName.endsWith("png")) {
            return Bitmap.CompressFormat.PNG;
        }

        return Bitmap.CompressFormat.JPEG;
    }

    public static Bitmap getImg(String url) {
        if (!isMounted()) return null;


        File imgFile = new File(CACHEDIR, getName(url));
        if (imgFile.exists()) {
            //return BitmapFactory.decodeFile(imgFile.getAbsolutePath());

                FileInputStream fin = null;
                try {
                    fin = new FileInputStream(imgFile);
                    byte[] bytes = StreamUtil.readStream(fin);
                    return  BitmapFactory.decodeByteArray(bytes,0,bytes.length);
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    StreamUtil.close(fin);

                }

        }

        return null;
    }

    public static String getName(String url) {

        //return url.substring(url.lastIndexOf("/")+1);
        return md5(url);



    }

    public static String getName(String url, int end) {
        // return url.substring(url.lastIndexOf("/")+1,end);
        return url.substring(url.lastIndexOf("/")+1);
    }
    public static String md5(String stringContent) {
        String ret = null;
        if (stringContent != null) {
            try {
                MessageDigest digest = MessageDigest.getInstance("MD5");

                byte[] data = digest.digest(stringContent.getBytes());
                BigInteger bigInteger = new BigInteger(1, data);
                ret = bigInteger.toString(16);
            } catch (NoSuchAlgorithmException e) {
                e.printStackTrace();
            }

        }

        return ret;

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值