您好,登錄后才能下訂單哦!
本篇內容介紹了“Java中怎么將base64編碼字符串轉換為圖片”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
將base64編碼字符串轉換為圖片的代碼如下 ImageUtil.java:
package util; import javax.servlet.http.HttpServletRequest; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Base64; import java.util.UUID; public class ImageUtil { /** * @Description: 將base64編碼字符串轉換為圖片 * @Author: * @CreateTime: * @param file base64編碼字符串 * @param path 圖片路徑-具體到文件 * @return */ public static String generateImage(String file, String path, HttpServletRequest request) { // 解密 try { // 項目絕對路徑 String savePath = request.getSession().getServletContext().getRealPath("upload"); // 圖片分類路徑+圖片名+圖片后綴 String imgClassPath = path.concat(UUID.randomUUID().toString()).concat(".jpg"); // 解密 Base64.Decoder decoder = Base64.getDecoder(); // 去掉base64前綴 data:image/jpeg;base64, file = file.substring(file.indexOf(",", 1) + 1, file.length()); byte[] b = decoder.decode(file); // 處理數據 for (int i = 0; i < b.length; ++i) { if (b[i] < 0) { b[i] += 256; } } // 保存圖片 OutputStream out = new FileOutputStream(savePath.concat(imgClassPath)); out.write(b); out.flush(); out.close(); // 返回圖片的相對路徑 = 圖片分類路徑+圖片名+圖片后綴 return imgClassPath; } catch (IOException e) { return null; } } }
import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; /** * @Description: * @Author: Han * @CreateDate: 2022/9/7 **/ public class Test010 { public static void main(String[] args) { String base64Str = imageToBase64Str("D:\\SoftWare\\圖片素材\\頭像\\432.jpeg"); System.out.println(base64Str); boolean b = base64StrToImage(base64Str, "D:\\002.jpg"); System.out.println(b); } /** * 圖片轉base64字符串 * * @param imgFile 圖片路徑 * @return */ public static String imageToBase64Str(String imgFile) { InputStream inputStream = null; byte[] data = null; try { inputStream = new FileInputStream(imgFile); data = new byte[inputStream.available()]; inputStream.read(data); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } // 加密 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data); } /** * base64編碼字符串轉換為圖片,并寫入文件 * * @param imgStr base64編碼字符串 * @param path 圖片路徑 * @return */ public static boolean base64StrToImage(String imgStr, String path) { if (imgStr == null) return false; BASE64Decoder decoder = new BASE64Decoder(); try { // 解密 byte[] b = decoder.decodeBuffer(imgStr); // 處理數據 for (int i = 0; i < b.length; ++i) { if (b[i] < 0) { b[i] += 256; } } //文件夾不存在則自動創建 File tempFile = new File(path); if (!tempFile.getParentFile().exists()) { tempFile.getParentFile().mkdirs(); } OutputStream out = new FileOutputStream(tempFile); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } } }
“Java中怎么將base64編碼字符串轉換為圖片”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。