Android中本地图片和bitmap的相互转化

986 阅读1分钟

开发中我们经常会碰到本地保存的图片和bitmap的一个相互转化问题。Android中我们使用bitmap来记录图片数据,相关的转化是必不可少的。所以,我在这里记录上相关的转化方法,以供使用。

将bitmap转为本地图片

/**
 * 将Bitmap转成本地图片
 * @param path 保存为本地图片的地址
 * @param bitmap 要转化的Bitmap
 */
public static void saveImage(String path, Bitmap bitmap){
    try {
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(path));
        bitmap.compress(Bitmap.CompressFormat.JPEG,80,bos);
        bos.flush();
        bos.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

将本地图片转为bitmap

/**
 * 将本地图片转成Bitmap
 * @param path 已有图片的路径
 * @return
 */
public static Bitmap openImage(String path){
    Bitmap bitmap = null;
    try {
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path));
        bitmap = BitmapFactory.decodeStream(bis);
        bis.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return bitmap;
}

其他简单转化bitmap的方法

public void otherBitmapWay(String path){
    //该方法直接传文件路径的字符串,即可将指定路径的图片读取到Bitmap对象。
    Bitmap bitmap = BitmapFactory.decodeFile(path);
    //该方法可从资源文件中读取图片信息。第一个参数一般传getResources(),第二个参数传drawable图片的资源id,如下
    Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(),R.mipmap.aaa);
}