package com.cmos.smrz.util; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; public class ImageSwitcher { /** * 将base64编码字符串转换为图片 * 插件返回的 base64 编码的字符串都是有一个前缀"data:image/jpeg;base64," 解码之前要去掉 * * @param imgString base64 编码字符串 * @param imgPath 图片路径-具体到文件 * @return 是否转换成功 */ public static boolean generateImage(String imgString, String imgPath) { if (imgString == null) { // 图像数据为空 return false; } BASE64Decoder base64Decoder = new BASE64Decoder(); try { // // Base64 解码 解密 byte[] b = base64Decoder.decodeBuffer(imgString); // 处理数据 for (int i = 0; i < b.length; ++i) { if (b[i] < 0) { // 调整异常数据 b[i] += 256; } } // 新生成的图片 OutputStream outputStream = new FileOutputStream(imgPath); outputStream.write(b); outputStream.flush(); outputStream.close(); return true; } catch (Exception e) { e.printStackTrace(); return false; } } /** * 根据图片地址转换为 base64 编码字符串 * * @param imgFilePath 图片文件路径 * @return 图片 base64 编码字符串 */ public static String getImageString(String imgFilePath) { InputStream inputStream = null; byte[] data = null; // 读取图片字节数组 try { inputStream = new FileInputStream(imgFilePath); data = new byte[inputStream.available()]; inputStream.read(data); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } // 对字节数组 Base64 编码 加密 BASE64Encoder base64Encoder = new BASE64Encoder(); // 返回 Base64 编码过的字节数组字符串 return base64Encoder.encode(data); } }
Base64图片接收保存本地
最新推荐文章于 2024-05-20 22:28:51 发布