java编写之jpg图片与base64编码之间的转换
/**
* @author zyq
* 將網絡圖片進行Base64位編碼
* @param imgUrl
*
*/
public static String encodeWebImageToBase64(URL imgUrl){ //傳入圖片url,將網絡圖片編碼為base64編碼
String webArray;
ByteArrayOutputStream outputStream = null; //字節數組流,可以捕獲內存緩沖區的數據,轉換成字節數組(拓展:ByteArrayInputStream: 可以將字節數組轉化為輸入流)
try {
BufferedImage bufferedImage = ImageIO.read(imgUrl); //Image是一個抽象列,BufferedImage是Image的實現,Image和BufferedImage的主要作用就是將一副圖片加載到內存 中
outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage,"jpg",outputStream);//將BufferedImage對象直接寫出指定輸出流outputStream,圖片格式為jpg
}catch (MalformedURLException e){ //URL協議、格式或者路徑錯誤異常
e.printStackTrace();
}catch (IOException e1){ //輸入輸出異常
e1.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder(); //BASE64Encoder,字符串加密算法
webArray = encoder.encode(outputStream.toByteArray()); //編碼為base64編碼(方法參數為字節數組),其中outputStream.toByteArray()用于獲取內存緩沖中的數據,并轉換 為字節數組
return webArray;
}
/**
* @author zyq
* 將本地圖片進行Base64位編碼
* @param imageFile
*/
public static String encodeLocImageToBase64(File imageFile){
String locArray;
ByteArrayOutputStream outputStream = null;
try {
BufferedImage bufferedImage = ImageIO.read(imageFile);
outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage,"jpg",outputStream);
}catch (MalformedURLException e1){
e1.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder();
locArray = encoder.encode(outputStream.toByteArray());
return locArray;
}
/**
* @author zyq
* 將base64編碼的圖片進行解碼顯示,并保存在指定路徑
* @param base64code
* @param imagePath
* @param imageName
*/
public static void decodeBase64ToImage(String base64code,String imagePath,String imageName){
BASE64Decoder decoder = new BASE64Decoder(); //BASE64Decoder,base64編碼解碼算法,解碼為字節數組
try {
FileOutputStream write = new FileOutputStream(new File(imagePath + imageName)); //文件輸出流,是用于將數據寫入File或 FileDescriptor的輸出流,其中
File(imagePath + imageName)創建文件,參數為文件名(文件路徑)
byte[] decoderBytes = decoder.decodeBuffer(base64code); //解碼,方法參數為base64加密編碼
write.write(decoderBytes); //decoderBytes數組寫入文件
write.close(); //關閉此文件輸出流并釋放與此流有關的所有系統資源
}catch (IOException e){
e.printStackTrace();
}
}
轉載于:https://www.cnblogs.com/jjlyx/p/7485413.html
總結
以上是生活随笔為你收集整理的java编写之jpg图片与base64编码之间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker 私有仓库 Harbor r
- 下一篇: 闭包原理个人理解