zoukankan      html  css  js  c++  java
  • 图片和base64 二进制相互转换

    package com.xldz.xlworkbench.util;
    
    import java.awt.image.BufferedImage;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.IOException;
    
    import javax.imageio.ImageIO;
    
    import sun.misc.BASE64Decoder;
    import sun.misc.BASE64Encoder;
    
    public class pictureChange {
        static BASE64Encoder encoder = new sun.misc.BASE64Encoder();
        static BASE64Decoder decoder = new sun.misc.BASE64Decoder();
    
        public static void main(String[] args) {
            System.out.println(getImageBinary());
            base64StringToImage(getImageBinary());
        }
    
        /**
         * 将图片转换成二进制
         *
         * @return
         */
        static String getImageBinary() {
            File f = new File("d:"+ File.separator+"1.jpg");
            BufferedImage bi;
            try {
                bi = ImageIO.read(f);
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ImageIO.write(bi, "jpg", baos);  //经测试转换的图片是格式这里就什么格式,否则会失真
                byte[] bytes = baos.toByteArray();
    
                return encoder.encodeBuffer(bytes).trim();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return null;
        }
    
        /**
         * 将二进制转换为图片
         *
         * @param base64String
         */
        static void base64StringToImage(String base64String) {
            try {
                byte[] bytes1 = decoder.decodeBuffer(base64String);
    
                ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
                BufferedImage bi1 = ImageIO.read(bais);
                File w2 = new File("d:"+ File.separator+"QQ.jpg");// 可以是jpg,png,gif格式
                ImageIO.write(bi1, "jpg", w2);// 不管输出什么格式图片,此处不需改动
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
    }

    完。

  • 相关阅读:
    Extjs系列篇(3)—-model数据模型
    js中parseInt()会导致的一些问题
    Extjs系列篇(2)—-初步了解
    一步一步学python(七)
    一步一步学python(六)
    一步一步学python(五) -条件 循环和其他语句
    一步一步学python(四)
    一步一步学python(三)
    MFC socket网络通讯核心代码
    MFC 遍历FTP服务器目录中文乱码问题
  • 原文地址:https://www.cnblogs.com/MagicAsa/p/11937063.html
Copyright © 2011-2022 走看看