分享

图片与二进制之间的转换

 不醉怎能入睡 2014-06-09
package com.ipanel.chenqk.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;

/**
 * 图片与二进制之间的相互转换
 * @author chenqk
 * 2014年6月9日09:50:13
 */
public class TranserImageUtil {
    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("f://image/beauty.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("f://test/beauty.jpg");//可以是jpg,png,gif格式  
            ImageIO.write(bi1, "jpg", w2);//不管输出什么格式图片,此处不需改动  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }
   
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约