Bitmap对象的使用

版权声明:1.版权归原作者Moment ° 回忆 ✨所有; 2.未经原作者允许不得转载本文内容,否则将视为侵权; 3.转载或者引用本文内容请注明来源及原作者; 4.对于不遵守此声明或者其他违法使用本文内容者,本人依法保留追究权等。 https://blog.csdn.net/qq_35366269/article/details/83446640

1、将传入的Bitmap对象压缩并存储到本地文件中

      try {
            /*
            通过Bitmap对象中compress函数实现将传入的bitmap图片进行压缩处理并写入到本地中
            Bitmap.CompressFormat.JPEG  表示压缩后的图片格式,之所以选择jpeg格式作为图片的名称是因为该格式占用空间最小
            100  表示压缩以后的图片质量,100表示质量最高
             */
            bitmap.compress(Bitmap.CompressFormat.JPEG,100,new FileOutputStream(file1));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

2、地区本地的图片并转换为Bitmap对象

  try {
            if (file.exists()){
                //读取指定图片文件并将其转换为Bitmap对象
                Bitmap bitmap1 = BitmapFactory.decodeStream(new FileInputStream(file));
                return bitmap1;
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

全部代码:

package com.casic.bitmaputils.utils;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

/**
 * @author 郭宝
 * @project: BitmapUtils
 * @package: com.casic.bitmaputils.utils
 * @date: 2018/10/27 0027 14:03
 * @brief: 本地缓存图片工具
 */

public class LocalCacheImagesUtil {

    //本地缓存路径
    public static final String LOCAL_CACHE_PATH = Environment.getExternalStorageDirectory().getAbsolutePath()+"/BitmapUtils";


    /**
     * 设置本地缓存
     * @param url  传入URL是为了给本地图片设置名称使用的
     * @param bitmap 要本地缓存的图片对象
     */
    public void setLocalCache(String url, Bitmap bitmap){
        File file = new File(LOCAL_CACHE_PATH);
        //
        if (!file.exists()||!file.isDirectory()){
            //创建文件夹
            file.mkdirs();
        }

        //因为图片URL地址中可能会有一些特殊符号,不太适合作为文件的名称,那么这时候就需要通过MD5将URL字符串进行加密处理,然后在作为文件名称存储
        String fileName = MD5Util.md5(url);

        File file1 = new File(LOCAL_CACHE_PATH, fileName);

        try {
            /*
            通过Bitmap对象中compress函数实现将传入的bitmap图片进行压缩处理并写入到本地中
            Bitmap.CompressFormat.JPEG  表示压缩后的图片格式,之所以选择jpeg格式作为图片的名称是因为该格式占用空间最小
            100  表示压缩以后的图片质量,100表示质量最高
             */
            bitmap.compress(Bitmap.CompressFormat.JPEG,100,new FileOutputStream(file1));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

    }


    /**
     * 根据传入的url地址获取本地缓存的bitmap对象
     * @param url
     * @return
     */
    public Bitmap getLocalCache(String url){

        String fileName = MD5Util.md5(url);

        File file = new File(LOCAL_CACHE_PATH,fileName);

        try {
            if (file.exists()){
                //读取指定图片文件并将其转换为Bitmap对象
                Bitmap bitmap1 = BitmapFactory.decodeStream(new FileInputStream(file));
                return bitmap1;
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }


        return null;
    }

}

猜你喜欢

转载自blog.csdn.net/qq_35366269/article/details/83446640