Java 图片Base64
来自:https://blog.csdn.net/qq_38508087/article/details/84671522
引用的类
import sun.misc.BASE64Encoder; //jdk1.8自带就有哦 import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import java.util.Objects;
第一种:把网络图片转换成Base64字符串
/** * 网络图片转换Base64的方法 * * @param netImagePath ?? ? */ public static void NetImageToBase64(String netImagePath) { final ByteArrayOutputStream data = new ByteArrayOutputStream(); try { // 创建URL URL url = new URL(netImagePath); final byte[] by = new byte[1024]; // 创建链接 final HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); new Thread(new Runnable() { @Override public void run() { try { InputStream is = conn.getInputStream(); // 将内容读取内存中 int len = -1; while ((len = is.read(by)) != -1) { data.write(by, 0, len); } // 对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); String strNetImageToBase64 = encoder.encode(data.toByteArray()); System.out.println("网络图片转换Base64:" + strNetImageToBase64); // 关闭流 is.close(); } catch (IOException e) { e.printStackTrace(); } } }).start(); } catch (IOException e) { e.printStackTrace(); } }
第二种:把本地图片转换成base64
/** * 本地图片转换Base64的方法 * * @param imgPath ?? ? */ public static void ImageToBase64(String imgPath) { byte[] data = null; // 读取图片字节数组 try { InputStream in = new FileInputStream(imgPath); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } // 对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); // 返回Base64编码过的字节数组字符串 System.out.println("本地图片转换Base64:" + encoder.encode(Objects.requireNonNull(data))); }
测试类
public static void main(String[] args) { //第一个:把网络图片装换成Base64 String netImagePath = "网络图片路径"; //下面是网络图片转换Base64的方法 NetImageToBase64(netImagePath); //下面是本地图片转换Base64的方法 String imagePath = "本地图片路径"; ImageToBase64(imagePath); }