首页 > 其他分享 >图片URL转Base64编码

图片URL转Base64编码

时间:2023-05-18 17:25:02浏览次数:47  
标签:编码 return String URL Base64 httpUrl outStream null

@Slf4j
public class UrlToBase64Util {
/**
* 图片URL转Base64编码
* @param imgUrl 图片URL
* @return Base64编码
*/
public static String imageUrlToBase64(String imgUrl) {
URL url = null;
InputStream is = null;
ByteArrayOutputStream outStream = null;
HttpURLConnection httpUrl = null;

try {
url = new URL(imgUrl);
httpUrl = (HttpURLConnection) url.openConnection();
httpUrl.connect();
httpUrl.getInputStream();

is = httpUrl.getInputStream();
outStream = new ByteArrayOutputStream();

//创建一个Buffer字符串
byte[] buffer = new byte[1024];
//每次读取的字符串长度,如果为-1,代表全部读取完毕
int len = 0;
//使用输入流从buffer里把数据读取出来
while( (len = is.read(buffer)) != -1 ){
//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
outStream.write(buffer, 0, len);
}

// 对字节数组Base64编码
return encode(outStream.toByteArray());
} catch (Exception e) {
log.error("图片地址转base64值异常",e);
e.printStackTrace();
} finally {
try {
if(is != null) {
is.close();
}
if(outStream != null) {
outStream.close();
}
if(httpUrl != null) {
httpUrl.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}

/**
* 图片转字符串
* @param image 图片Buffer
* @return Base64编码
*/
public static String encode(byte[] image){
BASE64Encoder decoder = new BASE64Encoder();
return replaceEnter(decoder.encode(image));
}

/**
* 字符替换
* @param str 字符串
* @return 替换后的字符串
*/
public static String replaceEnter(String str){
String reg ="[\n-\r]";
Pattern p = Pattern.compile(reg);
Matcher m = p.matcher(str);
return m.replaceAll("");
}
}

标签:编码,return,String,URL,Base64,httpUrl,outStream,null
From: https://www.cnblogs.com/802syy/p/17412544.html

相关文章

  • Spartacus base-url 访问 - CSR 端需要修改的配置
    假设我想把Spartacus的url后面增加customurl访问,比如以前通过https://spartacus-demo.eastus.cloudapp.azure.com/electronics-spa/访问,现在通过https://spartacus-demo.eastus.cloudapp.azure.com/electronics-spa/jerry访问。在CSR即客户端渲染模式下,在app.modul......
  • 【hadoop】 3005-hadoop对象序列化编码
    一、hadoop序列化操作Writable接口,是根据 DataInput 和 DataOutput 实现的简单、有效的序列化对象MR的任意Key和Value必须实现Writable接口.MR的任意key必须实现WritableComparable接口二、自定义Writable,实现MapReduce程序1、需求内容日期 ......
  • 赫夫曼编码
    赫夫曼编码1.基本介绍赫夫曼编码也即哈夫曼编码(HuffmanCoding),是一种编码方式,属于一种程序算法;赫夫曼编码是赫夫曼树在电讯通信中的经典应用之一;赫夫曼编码广泛地应用于数据文件压缩,其压缩率通常在20%~90%之间。重复次数越多,压缩率越高。赫夫曼编码是可变字长编码(VLC)的一种......
  • 英伟达显卡编码能力表
    经常需要查英伟达各个显卡的编码能力,所以记录一下,官方网址https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new ......
  • Java中十个常见的违规编码
    摘要:作者VeeraSundar在清理代码工作时发现一些常见的违规编码,因此,VeeraSundar把针对常见的一些违规编码总结成一份列表,以便帮助Java爱好者提高代码的质量和可维护性。最近,我给Java项目做了一次代码清理工作。经过清理后,我发现一组常见的违规代码(指不规范的代码并不表示代码错......
  • Flask003_ URL 与视图
    [email protected]中的第一个字符串参数叫作URL。“/”代表网站的根路径,只要在浏览器中输入网站的域名即可访问到“/”。视图函数被@app.route装饰的函数叫作视图函数。......
  • edge浏览器列表 edge://edge-urls
    ListofEdgeURLsedge://aboutedge://accessibilityedge://app-service-internalsedge://app-settingsedge://application-guard-internalsedge://appsedge://attribution-internalsedge://augloop-internalsedge://autofill-internalsedge://blob-internalsedge......
  • Golang URL query contains semicolon 报错解决方案
    ​ 报错信息http:URLquerycontainssemicolon,whichisnolongerasupportedseparator;partsofthequerymaybestrippedwhenparsed;seegolang.org/issue/25192 高版本http废除了分号做分隔符,会在http库中做报警输出,基础库代码如下:func(shserverHandle......
  • 将汉字转换为gb2312编码
    //将汉字转换成GB2312编码privatebyte[]StringToBytes(stringTheString){EncodingfromEcoding=Encoding.GetEncoding("UTF-8");//返回utf-8的编码EncodingtoEcoding=Encoding.GetEncoding("gb2312");......
  • Python-解决字符串编码UnicodeEncodeError错误
     data_results="123456789\u93b4\u612c\u59db\u2022"#将字符串转换为字节序列:使用encode方法将字符串转换为字节序列,并指定编码格式为utf-8print(data_results.encode('utf-8'))#使用encode方法将字符串转换为字节序列,并指定编码格式为gbk,使用ignore参数忽略无法处理的字......