javaXML方式傳輸圖片 .

來源:互聯網
上載者:User

1.把圖片讀到byte[] 流

2.把byte[]流轉為BASE64編碼(即是一堆字串),把字串放到XML裡,圖片就可以隨著xml傳輸了。

3.把xml裡的BASE64編碼解碼為byte[]流,把再輸出為圖片。

 

java 實現base64與byte[]相互轉換:

import sun.misc.BASE64Decoder;//將base64轉換為byte[]
import sun.misc.BASE64Encoder;//轉byet[]換為base64
public class Test {
public static void main(String args[]) throws IOException
{
//定義一個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)); }
}

 

//把圖片轉成BASE64編碼

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.imageio.ImageIO;

import sun.misc.BASE64Encoder;

public class TestImageToBase64{ 
 
  //執行個體化 處理BASE64Encoder對象
  static BASE64Encoder encoder = new sun.misc.BASE64Encoder();  
  
  /*
   * 得到指定圖片的base64編碼
   */
  public  static String getImageBinary(){  
     File f = new File("d://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 args
     *@throws IOException*/
   public static void main(String[] args)throws IOException{
    //得到圖片的base64編碼
    String abc = getImageBinary();
    //去掉得到的base64編碼的分行符號號
    Pattern p = Pattern.compile("\\s*|\t|\r|\n");
    Matcher m = p.matcher(abc);
    String after = m.replaceAll("");
    //列印去掉分行符號號base64編碼
    System.out.println(after);
   
    }

}

 

 

//把圖片的BASE64編碼還原為圖片:

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import sun.misc.BASE64Decoder;

public class CodeTest {

public static void main(String[] args) throws IOException {

//str 為一圖片的BASE64編碼

String str = "R0lGODlhgwBVAPcAAAAAAAwLBxkGBQ4ODhAQEBsSChUVFS4TDB8eGQkA9koPCDAAzy4mFVgAp2UYC0IqEUYuBVwiDEAsI1QnFX8AgDU1NUozFlgxD6cBWVY5FnIwEmQ4Gc0AMlhDHPEADlVJMEpKSm1IHOUBWpY3FZMyVY9IGXRWIEFmWGNYUmpdPXJgHQB8HK9EGGBgX4lXIACoAHhkMyt4m4VkJtstbv8A/65UHZBlG3plXotkNW5tZ5hmJMxQGJtlNIlzKHJyce1AQCGqOIl1PLtiIRClmXd4d65qL5x1J9hYIAKg6IR2bHx8e+FcGtpiG8drKZ1/MXCNbYGBgY2AbdxnIbd5KlKUr9hpMoaFhN1ZiPxUVOVqH9VxKpKFd5KFel2wKcx4KqCKSYqKivBrIJWJfoyMjK2NNJmNf992PJCPkJqPg+l4J5OSifJ1IuZ4NvF1MJSUlJ6ShtJ3k7CYRtKOLOeEOqOYioCsf5qameqHJvSEH6aajli23cqZRLaeZfaKJbanQ6GhoPOMM+mOReiXK9GrEcmdeM6oM6enpq+ml7+fovmZKLeub+mkKvqaM5qztq2treylNLetoc+xT7iwpOqVrbKysPumKrqyorW1tb20pu65CMu4bvyrMdyksL61p8W8g4nK4PizLey6Oby8u/25M/S5Tse+rtnGVuy+Z9bJbfzKAMTExMzEttDLlP3INdPLu9rNpdPOwM7OzufVbPvVStvSst7XpurXiNrUxdfWydbW1tvXx93Ywt7azcLk6dzc3PHcp/fkbOPdy9/f3+Dg4O7pjebi0+fj0+Tk5O3pz+3n2uzwrvjpxOrq6vDr2e/v3/Lu3+v2yvLv4O310/Pw3/Pw4PTx4PPx4/Dx8fTy4fXy4fXy5Pbz4vbz4/r3x/f05Pf05fj05Pf15Pj15fj25fX19fn25vf35/n25/n35vr36Pn46Pr46Pf3+Pr56fz46vj49/v56vj4+Pv66vz66fz66vz66/z67Pn+3/366v366/z77P376/377Pr6+v787f///ywAAAAAgwBVAAAI/wD/CRz4z4PBgQY9IDwoMCHBhxAjSpxIsaLFixgpKmxYEGFHjhs/ZhxJsqTJkw8VhgzJkSBLlDBjyiS50qHHhTNz6tyZMuJKn//sCB1KtKhRoZeOKjWadKlTO02fDkVCtSoSmkBbalVoh6fXmFcfds2YkCHDgmUbMhx78hJKt20zhiXI9ivEunbzVqQaEa/eoDDhmhRckrDEuXf/ilXM+CHixI0Bv50cF2LYx5Ab+4288yrfipvzhsZoeGTpjKU9Xxz9lTVni5gHxp7ommdtiqdJU3zs+eqlz7Npc779WnVVgsCDC49MXGLui88vO4fZXG3N6ws3VmesfGb1n+A9/v/c/vC5xdOfcZsEwB7ASZXib3okbzc9T/YD6WO33lPySfumIRcgRe21txhWW4n0k0BdueXgPw9GCOGEvlk1oYQYXohEhhxeOGGB7nW4HUvhtcRSaMc5JpBvjgF42D8uTgQiiCN9lxZa+5XFVURzIdbbXkAqN6N73g3XYosuRmdVchMKNCSR06FEn5QCjvTklVQN+dqUJ7HV3T8zmleRmOpRyZxsEdH4WmtGwviQgWUORlmXbSIG5ZqKcWnSWGHhp1tlcpqpmZt+4nnmmUjcidqchVHHGQBfGmrXdnCCWaiTBEEZ45+BdrqnlQO5B+WopOYnqaFTihoqpndCqSeZE8H/GiWdJZFK5K2ZmnrqmuSNuqqaYJra4bCXDOthhMUeqyyGyRqbIaW5YrrqtP7teihGalYqraVEvsooSbJKpGdJ41pLbpuANpruudeay1i5NQb27YC0Duquvfh6Cu688bZ7r17wZuTtuvR+6u+/k6Krb8H7CopRijCmB3GKASNMUXU9urmixm5mPPDCizo8kmobX0YyXxVbLK5JPQLX8ctXfawuyAKXlHHJ0rnc4LI8O9vzzz4Hrex2PqKZscfyEhxyvRctuaLEUIeVssqZvZs0zdA5ejDVOk0N2tUzh81uvlzv5PXFYDeM9WoKl901SSk67XTEUqfN8N39PoymgLyh5Hl22VMWTbd0G8usttgk0de3ioNX63ZO5C3OuN92L4143npPfvPGjj8uE8YWcv50y7oqzenlNW/tuch/SfVUVK4XBXvsQ81O+1Cr515f1BNNvCmQVR7Ge+aDz+Z7pMGTzHHyHCMvm4/BHb33Xpu/WPL0TT/dvPaWafx775NHzKP3yLcM9d58mTzyy42Lj1zOyxMvuvvPX1/++PQbB/PIhGM/vstwCx/4AAgb/B2pY/3L3vxIJzrlOc9/0JueA4l3M4kZzX+wOV/9nmc+mw2PfnTj4MM+aJ/j6e6EKEyhClfIQq4FBAA7";

 BASE64Decoder decoder=new BASE64Decoder();

 byte[] bytes=decoder.decodeBuffer(str);

File file=new File("D:/a.jpeg");

 FileOutputStream fos=new FileOutputStream(file);

fos.write(bytes);

 fos.flush();

 fos.close();

 }

1.把圖片讀到byte[] 流

2.把byte[]流轉為BASE64編碼(即是一堆字串),把字串放到XML裡,圖片就可以隨著xml傳輸了。

3.把xml裡的BASE64編碼解碼為byte[]流,把再輸出為圖片。

 

java 實現base64與byte[]相互轉換:

import sun.misc.BASE64Decoder;//將base64轉換為byte[]
import sun.misc.BASE64Encoder;//轉byet[]換為base64
public class Test {
public static void main(String args[]) throws IOException
{
//定義一個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)); }
}

 

//把圖片轉成BASE64編碼

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.imageio.ImageIO;

import sun.misc.BASE64Encoder;

public class TestImageToBase64{ 
 
  //執行個體化 處理BASE64Encoder對象
  static BASE64Encoder encoder = new sun.misc.BASE64Encoder();  
  
  /*
   * 得到指定圖片的base64編碼
   */
  public  static String getImageBinary(){  
     File f = new File("d://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 args
     *@throws IOException*/
   public static void main(String[] args)throws IOException{
    //得到圖片的base64編碼
    String abc = getImageBinary();
    //去掉得到的base64編碼的分行符號號
    Pattern p = Pattern.compile("\\s*|\t|\r|\n");
    Matcher m = p.matcher(abc);
    String after = m.replaceAll("");
    //列印去掉分行符號號base64編碼
    System.out.println(after);
   
    }

}

 

 

//把圖片的BASE64編碼還原為圖片:

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import sun.misc.BASE64Decoder;

public class CodeTest {

public static void main(String[] args) throws IOException {

//str 為一圖片的BASE64編碼

String str = "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";

 BASE64Decoder decoder=new BASE64Decoder();

 byte[] bytes=decoder.decodeBuffer(str);

File file=new File("D:/a.jpeg");

 FileOutputStream fos=new FileOutputStream(file);

fos.write(bytes);

 fos.flush();

 fos.close();

 }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.