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

    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 A {  
        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("e:/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("e://QQ.jpg");// 可以是jpg,png,gif格式  
                ImageIO.write(bi1, "jpg", w2);// 不管输出什么格式图片,此处不需改动  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
      
    }  
    

      

  • 相关阅读:
    sql 同一行中,不同结果在不同列显示
    用jstl的if或when标签判断字符串是否为空
    RESTful 接口规范
    HTTP协议详解
    easyui datagrid 去除单击行选中事件
    easyui datagrid 选中行效果
    Nodejs
    VMware 中的win7虚拟机在一段时间后就会自动挂起
    Vmware 安装 ghost 版 win 7
    idea tomcat 乱码问题的解决及相关设置
  • 原文地址:https://www.cnblogs.com/remember-forget/p/6728628.html
Copyright © 2011-2022 走看看