java圖片二進制相互轉換


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 A {  
    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("e:/1.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("e://QQ.jpg");// 可以是jpg,png,gif格式  
            ImageIO.write(bi1, "jpg", w2);// 不管輸出什么格式圖片,此處不需改動  
        } catch (IOException e) {  
            e.printStackTrace();  
        }  
    }  
  
}  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM