/** |
| | |
* 网络图片转base64 |
| | |
* @param src |
| | |
* @return |
| | |
* @throws Exception |
| | |
*/ |
| | |
public static String getImageBase(String src) throws Exception { |
| | |
|
| | |
String s = ""; |
| | |
//打开链接 |
| | |
HttpURLConnection conn = null; |
| | |
try { |
| | |
//new一个URL对象 |
| | |
URL url = new URL(src); |
| | |
conn = (HttpURLConnection) url.openConnection(); |
| | |
//设置请求方式为"GET" |
| | |
conn.setRequestMethod("GET"); |
| | |
//超时响应时间为5秒 |
| | |
conn.setConnectTimeout(5 * 1000); |
| | |
//通过输入流获取图片数据 |
| | |
InputStream inStream = conn.getInputStream(); |
| | |
//得到图片的二进制数据,以二进制封装得到数据,具有通用性 |
| | |
byte[] data = readInputStream(inStream); |
| | |
BASE64Encoder encode = new BASE64Encoder(); |
| | |
return encode.encode(data).replaceAll("\\n", ""); |
| | |
} catch (IOException e) { |
| | |
e.printStackTrace(); |
| | |
} |
| | |
return s; |
| | |
} |
| | |
private static byte[] readInputStream(InputStream inStream) { |
| | |
try { |
| | |
|
| | |
ByteArrayOutputStream outStream = new ByteArrayOutputStream(); |
| | |
//创建一个Buffer字符串, 这边buffer设置大一点就不会出现空的结尾现象 |
| | |
byte[] buffer = new byte[1024 * 1024]; |
| | |
//每次读取的字符串长度,如果为-1,代表全部读取完毕 |
| | |
int len = 0; |
| | |
//使用一个输入流从buffer里把数据读取出来 |
| | |
while ((len = inStream.read(buffer)) != -1) { |
| | |
//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度 |
| | |
outStream.write(buffer, 0, len); |
| | |
} |
| | |
//关闭输入流 |
| | |
inStream.close(); |
| | |
//把outStream里的数据写入内存 |
| | |
return outStream.toByteArray(); |
| | |
} catch (Exception e) { |
| | |
e.printStackTrace(); |
| | |
} |
| | |
return null; |
| | |
} |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程