JAVAWEB图片存入数据库的图片的转码与译码

package foreiger.utils;

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 TransformImage {
	private static BASE64Encoder encoder = new sun.misc.BASE64Encoder(); 
    private static BASE64Decoder decoder = new sun.misc.BASE64Decoder(); 
   
    public static void main(String[] args) { 
        System.out.println(getImageBinary()); 
    } 
   
    /**
     * 将图片转换成二进制
     * 
     * @return
     */ 
    public static String getImageBinary() { 
        File f = new File("F:\\java\\工作空间\\Foreigner\\WebContent\\images-tx\\a.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
     */ 
    public 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(); 
        } 
    }
}


你可能感兴趣的:(javaweb,java,数据库)