网络图片转base64
2024-10-21 10:31:43
/** | |||
* 网络图片转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; | |||
} |
最新文章
- [javascript] 判断 iframe 是否加载完成
- 给tabBar设置图片和字体颜色的几种方法
- Oracle Ebs R12 SLA与GL关系变化
- ytu 1940:Palindromes _easy version(水题)
- js获取网页高度(详细整理)
- !!Python字典增删操作技巧简述+Python字典嵌套字典与排序
- Writing Your First Test
- 网络资源(3) - iBatis视频
- ajax提交与上传文件同步
- 《JS权威指南学习总结--3.8类型转换》
- 关于sqlmap的一些命令
- jQuery(一)
- web理论知识--网页访问过程(附有Django的web项目访问流程)
- 关于WPF中Popup中的一些用法的总结
- 剑指offer(44)单词翻转序列
- npm 是干什么的
- VS的release工程设置为可调试
- python爬虫----XPath
- 【Java并发编程】2、无锁编程:lock-free原理;CAS;ABA问题
- mmcrfs
热门文章
- JUC并发编程
- Unity_UIWidgets - 组件Drawer
- Node.js学习笔记----day01
- C#,Winform软件防破译-源代码加密简单方法之.NET REACTOR(二)制作软件及软件试用时间限定
- 四、流程控制和break、continue、range函数的讲解
- CentOS即将停止维护,拥抱阿里“龙蜥“(Anolis OS),VMware安装Anolis OS与介绍
- 【学习日志】MySQL分表与索引的关系
- scroll-view滚动导航自动居中
- STM32F4库函数初始化系列:DMA串口接收
- print()、转义字符、标识符和保留字、变量、数据类型、类型转换