1. 程式人生 > >base64和圖片互轉

base64和圖片互轉

pom.xml新增

<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.11</version>
    </dependency>

java類如下:

package
com.wzl.demo.utils; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.codec.binary.Base64; /** * 將圖片轉換為Base64<br> * 將base64編碼字串解碼成img圖片 * @建立時間 2019-01-05 10:43:12 *
*/ public class Img2Base64Util { public static void main(String[] args) { String imgFile = "D:\\我的文件\\Pictures\\福建醫科大學.jpg";//待處理的圖片 String imgbese=getImgStr(imgFile); System.out.println(imgbese.length()); System.out.println(imgbese); String imgFilePath = "d:\\332.jpg";//
新生成的圖片 generateImage(imgbese,imgFilePath); } /** * 將圖片轉換成Base64編碼 * @param imgFile 待處理圖片 * @return */ public static String getImgStr(String imgFile){ //將圖片檔案轉化為位元組陣列字串,並對其進行Base64編碼處理 InputStream in = null; byte[] data = null; //讀取圖片位元組陣列 try { in = new FileInputStream(imgFile); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e){ e.printStackTrace(); } return new String(Base64.encodeBase64(data)); } /** * 對位元組陣列字串進行Base64解碼並生成圖片 * @param imgStr 圖片資料 * @param imgFilePath 儲存圖片全路徑地址 * @return */ public static boolean generateImage(String imgStr,String imgFilePath){ if (imgStr == null) { //影象資料為空 return false; } try{ //Base64解碼 byte[] b = Base64.decodeBase64(imgStr); for(int i=0;i<b.length;++i){ if(b[i]<0){//調整異常資料 b[i]+=256; } } //生成jpeg圖片 OutputStream out = new FileOutputStream(imgFilePath); out.write(b); out.flush(); out.close(); return true; }catch (Exception e){ return false; } } }