码迷,mamicode.com
首页 > 编程语言 > 详细

Java对图片Base64转码--HTML对Base64解码 [ Java加强版 ]

时间:2014-10-11 15:21:55      阅读:381      评论:0      收藏:0      [点我收藏+]

标签:base64   王吉平   java   html   

Java对图片Base64编码


    package base64;
    import java.awt.image.BufferedImage;  
    import java.io.ByteArrayInputStream;  
    import java.io.ByteArrayOutputStream;  
    import java.io.File;  
    import java.io.FileNotFoundException;
    import java.io.IOException;  
    import java.io.RandomAccessFile;
    import java.util.Scanner;
    import javax.imageio.ImageIO;  
    import sun.misc.BASE64Decoder;  
    import sun.misc.BASE64Encoder;  
      
    public class imageToBase64 {
        static BASE64Encoder encoder = new sun.misc.BASE64Encoder();  
        static BASE64Decoder decoder = new sun.misc.BASE64Decoder(); 
        
        public static void main(String[] args) {  
        	Scanner scanner = new Scanner(System.in) ;
        	System.out.printf("\t\t*********************************************\n");
        	System.out.printf("\t\t**         欢迎使用W_Jp的Base64编码                        **\n");
        	System.out.printf("\t\t*********************************************\n");
        	System.out.printf("输入图片地址:");
        	String path = scanner.next() ;
        	if(!getImageBinary(path).equals(""))
            {
        		System.out.printf("\n" + getImageBinary(path) + "\n\n");
	            System.out.printf("是否导出内容?(Y/N):");
	            String boo = scanner.next() ;
	            if(boo.equals("Y") || boo.equals("y")){
	            	
	            	System.out.println();
	            	System.out.printf("\t\t*********************************************\n");
	            	System.out.printf("\t\t**       1.导出现Base64编码到TXT文档                     **\n");
	            	System.out.printf("\t\t**       2.导出Base64解码后的png图片                     **\n");
	            	System.out.printf("\t\t**       3.同时操作以上两个                                             **\n");
	            	System.out.printf("\t\t*********************************************\n");
	            	System.out.printf("输入您的选择:");
	            	boo = scanner.next() ;
	            	if(boo.equals("1")){
	            		
	            		System.out.println();
	            		System.out.printf("\t\t*********************************************\n");
	            		System.out.printf("\t\t**      温馨提示:导出后文件名为wjp.txt      **\n");
	            		System.out.printf("\t\t*********************************************\n");
	            		System.out.printf("输入Base64编码的导出地址:");
	            		String toTxtPath = scanner.next() ;
	            		if(base64StringToTxt(getImageBinary(path), toTxtPath).equals("success")){
	            			
		            		System.out.println();
		            		System.out.printf("\t\t*********************************************\n");
		                	System.out.printf("\t\t**                 导出成功                                            **\n");
		            		System.out.printf("\t\t*********************************************\n");
		                    System.out.printf("\t\t**                 Thanks!!!               **\n");
		                    System.out.printf("\t\t↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\n");
	            		}
	            	} else if(boo.equals("2")){
	            		
	            		System.out.println();
	            		System.out.printf("\t\t*********************************************\n");
	            		System.out.printf("\t\t**      温馨提示:导出后文件名为wjp.png      **\n");
	            		System.out.printf("\t\t*********************************************\n");
	            		System.out.printf("输入解码后图片的导出地址:");
	            		String toImgPath = scanner.next() ;
	            		if(base64StringToImage(getImageBinary(path), toImgPath).equals("success")){
	            			
		            		System.out.println();
		            		System.out.printf("\t\t*********************************************\n");
		                	System.out.printf("\t\t**                 导出成功                                            **\n");
		            		System.out.printf("\t\t*********************************************\n");
		                    System.out.printf("\t\t**                 Thanks!!!               **\n");
		                    System.out.printf("\t\t↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\n");
	            		}
	            	} else if(boo.equals("3")){
	            		
	            		System.out.println();
	            		System.out.printf("\t\t*********************************************\n");
	            		System.out.printf("\t\t**  温馨提示:导出后文件名为wjp.txt/wjp.png  **\n");
	            		System.out.printf("\t\t*********************************************\n");
	            		System.out.printf("输入导出地址(两个文件都会在这个目录下):");
	            		String toBothPath = scanner.next() ;
	            		base64StringToImage(getImageBinary(path), toBothPath); 
	            		if(base64StringToTxt(getImageBinary(path), toBothPath).equals("success")){
	            			
		            		System.out.println();
		            		System.out.printf("\t\t*********************************************\n");
		                	System.out.printf("\t\t**                 导出成功                                            **\n");
		            		System.out.printf("\t\t*********************************************\n");
		                    System.out.printf("\t\t**                 Thanks!!!               **\n");
		                    System.out.printf("\t\t↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\n");
	            		}
	            	} else {
	            		
	            		System.out.println();
	            		System.out.printf("\t\t*********************************************\n");
	                    System.out.printf("\t\t**   您输入的编号无效!!! 程序意外退出了!!!   **\n");
	                    System.out.printf("\t\t*********************************************\n");
	                    System.out.printf("\t\t**                 Thanks!!!               **\n");
	                    System.out.printf("\t\t↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\n");
	            	}
	            	
	            } else {
	            	
	            	System.out.println();
	            	System.out.printf("\t\t*********************************************\n");
	                System.out.printf("\t\t**                 Thanks!!!               **\n");
	                System.out.printf("\t\t↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\n");
	            }
        	}
        }  
          
        static String getImageBinary(String path){
            File f = new File(path);         
            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(); 
            	System.out.println();
            	System.out.printf("\t\t*********************************************\n");
                System.out.printf("\t\t**   您输入的地址无效!!! 程序意外退出了!!!   **\n");
                System.out.printf("\t\t*********************************************\n");
                System.out.printf("\t\t**                 Thanks!!!               **\n");
                System.out.printf("\t\t↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\n");
            }  
            return "" ;  
        }  
          
        static String base64StringToImage(String base64String, String path){  
        	
            try {  
            	
                byte[] bytes1 = decoder.decodeBuffer(base64String);                
                ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);  
                BufferedImage bi1 =ImageIO.read(bais);  
                File w2 = new File(path + "/wjp.png");
                ImageIO.write(bi1, "jpg", w2);
            } catch (Exception e) {  
            	
                // e.printStackTrace();  
            	System.out.println();
            	System.out.printf("\t\t*********************************************\n");
                System.out.printf("\t\t**   您输入的地址无效!!! 程序意外退出了!!!   **\n");
                System.out.printf("\t\t*********************************************\n");
                System.out.printf("\t\t**                 Thanks!!!               **\n");
                System.out.printf("\t\t↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\n");
                return "err" ;
            }  
            return "success" ;
        }  
        static String base64StringToTxt(String base64String, String path){ 
        	
        	File filename = new File(path + "/wjp.txt");
        	RandomAccessFile mm = null ;
        	
        	try {
        		
				mm = new RandomAccessFile(filename,"rw");
				try {
					
					mm.writeBytes(base64String);
				} catch (IOException e) {
					
					//e.printStackTrace();
					System.out.println();
					System.out.printf("\t\t*********************************************\n");
                	System.out.printf("\t\t**                 写入失败                                            **\n");
            		System.out.printf("\t\t*********************************************\n");
                    System.out.printf("\t\t**                 Thanks!!!               **\n");
                    System.out.printf("\t\t↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\n");
                    return "err" ;
				}
			} catch (FileNotFoundException e) {
				
				//e.printStackTrace();
				System.out.println();
				System.out.printf("\t\t*********************************************\n");
            	System.out.printf("\t\t**                创建txt失败                                       **\n");
        		System.out.printf("\t\t*********************************************\n");
                System.out.printf("\t\t**                 Thanks!!!               **\n");
                System.out.printf("\t\t↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\n");
                return "err" ;
			} finally {
				
				try {
					
					if(mm!=null){
						mm.close();
					}
				} catch (IOException e) {
					
					//e.printStackTrace();
					System.out.println();
					System.out.printf("\t\t*********************************************\n");
	            	System.out.printf("\t\t**          RandomAccessFile关闭失败                    **\n");
	        		System.out.printf("\t\t*********************************************\n");
	                System.out.printf("\t\t**                 Thanks!!!               **\n");
	                System.out.printf("\t\t↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑\n");
				}
			}
        	return "success" ;
        }
      
    }  

HTML对Base64解码


<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=gbk">
		<title></title>
		
		<script type="text/javascript">	
			//hideElement()  ,  showElement()
			function hideElement(id){
				document.getElementById(id).style.display="none";
			}
			function showElement(id){
				document.getElementById(id).style.display="";
			}
			
			function wjp(id){
				if(id == 1){
					var values = document.getElementById("code").value ;
					var str = "<span><img src=\"data:image/gif;base64," + values + "\"/></span><br />" ;
					showElement("div2") ;
					hideElement("div1") ;
					document.getElementById("insert").innerHTML = str;
				}
				if(id == 2){
				
					showElement("div1") ;
					hideElement("div2") ;
					document.getElementById("code").value = "" ;
				}
			}

		</script>
	</head>
	<body>
		<center>
			<div id="div1">
				<h2 style="color:red;">W_Jp Base64解码</h2>
				<textarea rows="20" cols="100" id="code"></textarea>
				<br />
				<input type="button" value="转码" onclick="wjp(1)"/>
				<br /><br /><br /><br /><br />
			</div>
			
			<div id="div2">
				<h2 style="color:red;">W_Jp 给您的结果</h2>
				<label id="insert"></label>
				<input type="button" value="继续转码" onclick="wjp(2)"/>
			</div>
			
		</center>
		
		<script type="text/javascript">
			showElement("div1") ;
			hideElement("div2") ;
		</script>
		
	</body>
</html>

继续给大家一组测试数据,尝试用我的HTML代码试试,看看能不能显示出图片

/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAJoAMgDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD1rS2K
aLpwCJzaoTlQf6VLPfwW3lfaJ7WLzZBFH5iqodz0UZ6k+lRWIH9k6eD2tlJFcX4m05obnT7jWTba
tLf30OniKSApFbwyA7zEu8kSErneST0Axisbu+5r0O+81t4BWMe3lr/hUUV/BNPLBHNbPNAAZo1C
Fo9wyu4dRkcjPWs7T4LnR7GRdR1Rbq2t/wDVzzR7JFjGT+8fdhiBj5sL0JOc1xvhzU7yHxU2sXsC
w6d4lOy2LIVZDEMRB8naC6ZxgtuOMYFK77hoegHVLVXuEa5sw1soa4XKZhBG4F/7owM89qmgulni
iliaGSKRdyuiqQw7EEDkGvLPiPpjXHiO3MxtpYrmxmED3G5PsrRAO7ExrucBQdoJb5mbjHBi8H6b
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
4f7zf98H/CiiijmYWP/Z


Java对图片Base64转码--HTML对Base64解码 [ Java加强版 ]

标签:base64   王吉平   java   html   

原文地址:http://blog.csdn.net/imwangjiping/article/details/39993821

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!