`
fackyou200
  • 浏览: 301323 次
  • 性别: Icon_minigender_1
  • 来自: 山西太原
社区版块
存档分类
最新评论

图片和BASE64 转换

    博客分类:
  • java
 
阅读更多
package test;

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.imageio.ImageIO;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;

public class Test {

	public static void main(String args[])throws Exception{
		//定义一个BASE64Encoder 
		BASE64Encoder encode = new BASE64Encoder(); 
		//将byte[]转换为base64
		String base64 = encode.encode("五笔字型电子计算机".getBytes()); 
		//输出base64
		System.out.println(base64); 
		//新建一个BASE64Decoder 
		BASE64Decoder decode = new BASE64Decoder(); 
		//将base64转换为byte[]
		byte[] b = decode.decodeBuffer(base64); 
		//输出转换后的byte[]
		System.out.println(new String(b)); 
		
		System.out.println("=======================图片转换为BASE64编码=======================");
		
		//System.out.println(getImageBinary());
		getImage("D:\\image","dongxh.jpg",getImageBinary(false));
	}
	
	
	 //将图片转化为BASE64编码
	 public static String getImageBinary(boolean bl){
		 BASE64Encoder encoder = new sun.misc.BASE64Encoder();  
	     File f = new File("d://55bfd32bb9f1ec4c369bf725.jpg");          
	     BufferedImage bi;   
	     try {   
	          bi = ImageIO.read(f);   
	          ByteArrayOutputStream baos = new ByteArrayOutputStream();   
	          ImageIO.write(bi, "jpg", baos);   
	          byte[] bytes = baos.toByteArray();   
	          //是否格式化BASE64编码
	          if(bl){
		          //得到图片的base64编码
		          String ImageBinary = encoder.encodeBuffer(bytes).trim();
		          //去掉得到的base64编码的换行符号
		          Pattern p = Pattern.compile("\\s*|\t|\r|\n"); 
		          Matcher m = p.matcher(ImageBinary); 
		          return m.replaceAll("");
	          }else{
	        	  return encoder.encodeBuffer(bytes).trim();   
	          }
	       } catch (IOException e) {   
	          e.printStackTrace();   
	       }   
	       return null;   
	  } 
	 
	 //将BASE64编码转换为图片
	 public static void getImage(String savePath,String imageName,String imageBASE64)throws Exception{
		 BASE64Decoder decoder=new BASE64Decoder();
		 byte[] bytes=decoder.decodeBuffer(imageBASE64);
		 File file=new File(savePath+File.separator+imageName);
		 FileOutputStream fos=new FileOutputStream(file);
		 fos.write(bytes);
		 fos.flush();
		 fos.close();
	 }
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics