將圖片檔案以二進位制方式儲存和恢復
阿新 • • 發佈:2018-11-04
/** * 將圖片轉換成二進位制 * * @return */ static String getImageBinary() { BASE64Encoder encoder = new sun.misc.BASE64Encoder(); //本地圖片 File f = new File("D:/voice/picture/企業微信截圖_15302624613767.png"); BufferedImage bi; try { bi = ImageIO.read(f); ByteArrayOutputStream baos = newByteArrayOutputStream(); //圖片格式 ImageIO.write(bi, "png", baos); byte[] bytes = baos.toByteArray(); return encoder.encodeBuffer(bytes).trim(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 將二進位制轉換為圖片 * * @param base64String*/ static void base64StringToImage(String base64String) { BASE64Decoder decoder = new sun.misc.BASE64Decoder(); try { byte[] bytes1 = decoder.decodeBuffer(base64String); ByteArrayInputStream bais = new ByteArrayInputStream(bytes1); BufferedImage bi1 = ImageIO.read(bais); //圖片儲存本地路徑及名稱 File w2 = new File("D:/voice/2.png"); if(!w2.exists()){ w2.createNewFile(); } ImageIO.write(bi1, "jpg", w2); } catch (IOException e) { e.printStackTrace(); } } //呼叫方法測試
@GetMapping public String test(){ base64StringToImage(getImageBinary()); return "test01";}