zoukankan      html  css  js  c++  java
  • Java之Base64转为图片

    ########MD5编码##############

    public static String genMd5ByBytes(byte[] bytes) throws Exception {
            String value = null;
            try {
                MessageDigest md5 = MessageDigest.getInstance("MD5");
                md5.update(bytes);
                byte b[] = md5.digest();
                int i;
                StringBuffer buf = new StringBuffer("");
                for (int offset = 0; offset < b.length; offset++) {
                    i = b[offset];
                    if (i < 0)
                        i += 256;
                    if (i < 16)
                        buf.append("0");
                    buf.append(Integer.toHexString(i));
                }
                value = buf.toString();
            } catch (Exception e) {
                e.printStackTrace();
                throw new Exception("文件进行MD5摘要时出现异常。", e);
            }
            return value;
        }

    ##########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编码过的字节数组字符串
        }
    
        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;
            }
        }

    使用方法:

        public static void main(String[] args) {
            // 测试从Base64编码转换为图片文件
            String strImge = "";
            GenerateImage(strImge, "D:\11.jpg");
            // 测试从图片文件转换为Base64编码
           // System.out.println(GetImageStr("d:\11.jpg"));
        }
  • 相关阅读:
    mysql常用基本命令
    mysql8.0.13下载与安装图文教程
    k8s ingress 增加跨域配置
    Jenkins 备份恢复插件 thinBackup 使用
    k8s HA master 节点宕机修复
    nginx 跨域问题解决
    mongodb 3.4.24 主从复制
    k8s 线上安装 jenkins并结合 jenkinsfile 实现 helm 自动化部署
    k8s helm 运用与自建helm仓库chartmuseum
    centos6 源码安装 unzip
  • 原文地址:https://www.cnblogs.com/ywjfx/p/12204044.html
Copyright © 2011-2022 走看看