多语言展示
当前在线:441今日阅读:27今日分享:41

图片文件转Base64、InputStream、BufferedImage

将本地图片文件转成Base64编码、InputStream、BufferedImage等流对象。
工具/原料
1

Eclipse

2

依赖的jar包:sun.misc.BASE64Decoder.jar

方法/步骤
1

将本地图片文件转成Base64字符串,需要一个参数:本地图片路径public static String GetImageStr(String imgFilePath) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理        byte[] data = null;                // 读取图片字节数组        try {            InputStream in = new FileInputStream(imgFilePath);            data = new byte[in.available()];            in.read(data);            in.close();        } catch (IOException e) {            e.printStackTrace();        }                // 对字节数组Base64编码        BASE64Encoder encoder = new BASE64Encoder();        return encoder.encode(data);// 返回Base64编码过的字节数组字符串    }

2

本地图片转成InputStream流对象。需要一个参数,base64编码的字符串,可由步骤一得到。public static InputStream BaseToInputStream(String base64string){      ByteArrayInputStream stream = null;    try {    BASE64Decoder decoder = new BASE64Decoder();     byte[] bytes1 = decoder.decodeBuffer(base64string);      stream = new ByteArrayInputStream(bytes1);   } catch (Exception e) { // TODO: handle exception }        return stream;      }

3

本地图片转成BufferedImage流对象。需要一个参数,base64编码的字符串,可由步骤一得到。public static BufferedImage GetBufferedImage(String base64string)    {    BufferedImage image = null;    try {    InputStream stream = BaseToInputStream(base64string); image = ImageIO.read(stream); System.out.println('>>>'+image.getWidth()+','+image.getHeight()+'<<<'); } catch (IOException e) { e.printStackTrace(); }     return image;    }

4

将Base64String转成图片文件,需要两个参数:参数一:Base64编码的字符串,参数二:图片文件保存的路径。public static boolean GenerateImage(String imgStr, String imgFilePath) {// 对字节数组字符串进行Base64解码并生成图片        if (imgStr == null) // 图像数据为空            return false;        BASE64Decoder decoder = new BASE64Decoder();        try {            // Base64解码            byte[] bytes = decoder.decodeBuffer(imgStr);            for (int i = 0; i < bytes.length; ++i) {                if (bytes[i] < 0) {// 调整异常数据                    bytes[i] += 256;                }            }            // 生成jpeg图片            OutputStream out = new FileOutputStream(imgFilePath);            out.write(bytes);            out.flush();            out.close();            return true;        } catch (Exception e) {            return false;        }    }

推荐信息