• Java实现图片转base64字符串和图片互相转换


    Java实现图片转base64字符串和图片互相转换

    参考:

    base64编码字符串转换为图片,并写入文件

        /**
         * base64编码字符串转换为图片,并写入文件
         *
         * @param imgStr base64编码字符串
         * @param path   图片路径
         * @return
         */
        public static boolean base64StrToImage(String imgStr, String path) {
            if (imgStr == null)
                return false;
            BASE64Decoder decoder = new BASE64Decoder();
            try {
                // 解密
                byte[] b = decoder.decodeBuffer(imgStr);
                // 处理数据
                for (int i = 0; i < b.length; ++i) {
                    if (b[i] < 0) {
                        b[i] += 256;
                    }
                }
                //文件夹不存在则自动创建
                File tempFile = new File(path);
                if (!tempFile.getParentFile().exists()) {
                    tempFile.getParentFile().mkdirs();
                }
                OutputStream out = new FileOutputStream(tempFile);
                out.write(b);
                out.flush();
                out.close();
                return true;
            } catch (Exception e) {
                return false;
            }
        }
    

    图片转base64字符串

        /**
         * 图片转base64字符串
         *
         * @param imgFile 图片路径
         * @return
         */
        public static String imageToBase64Str(String imgFile) {
            InputStream inputStream = null;
            byte[] data = null;
            try {
                inputStream = new FileInputStream(imgFile);
                data = new byte[inputStream.available()];
                inputStream.read(data);
                inputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            // 加密
            BASE64Encoder encoder = new BASE64Encoder();
            return encoder.encode(data);
        }
    

    测试:

    public static void main(String[] args) {
      String base64Str = imageToBase64Str("D:/pic/001.jpg");
      System.out.println(base64Str);
     
      boolean b = base64StrToImage(base64Str, "D:/pic/temp/002.jpg");
      System.out.println(b);
    }
    
  • 相关阅读:
    zoj 3693, 卡精度
    zoj 3690, 计数 dp , 快速幂
    hdu 1496,枚举
    zoj 2399, 哈弗曼编码
    poj 2560,mst
    poj 2007, 乱搞,计算几何
    bnu 29064, 期望 水题
    img,bg
    垂直居中,定位的方法
    .reverse ,join,split区分
  • 原文地址:https://www.cnblogs.com/ziyue7575/p/14030424.html
Copyright © 2020-2023  润新知