java图片转成字符串_JAVA将图片(本地或者网络资源)转为Base64字符串,将base64字符串存储为本地图片...
网络资源代码
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* 将网络图片转成Base64码,此方法可以解决解码后图片显示不完整的问题
* @param imgURL图片地址。
* 例如:http://***.com/271025191524034.jpg
* @return
*/
public static String imgBase64(String imgURL) {
ByteArrayOutputStream outPut = new ByteArrayOutputStream();
byte[] data = new byte[1024];
try {
// 创建URL
URL url = new URL(imgURL);
// 创建链接
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(10 * 1000);
if(conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
return "fail";//连接失败/链接失效/图片不存在
}
InputStream inStream = conn.getInputStream();
int len = -1;
while ((len = inStream.read(data)) != -1) {
outPut.write(data, 0, len);
}
inStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(outPut.toByteArray());
}
本地图片转base64
public static String GetImageStr(String imgFile)
{//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
InputStream in = null;
byte[] data = null;
//读取图片字节数组
try
{
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
}
catch (IOException e)
{
e.printStackTrace();
}
//对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);//返回Base64编码过的字节数组字符串
}
Base64解码并生成图片
public static boolean GenerateImage(String base64str,String savepath)
{ //对字节数组字符串进行Base64解码并生成图片
if (base64str == null) //图像数据为空
return false;
// System.out.println("开始解码");
BASE64Decoder decoder = new BASE64Decoder();
try
{
//Base64解码
byte[] b = decoder.decodeBuffer(base64str);
// System.out.println("解码完成");
for(int i=0;i
{
if(b[i]<0)
{//调整异常数据
b[i]+=256;
}
}
// System.out.println("开始生成图片");
//生成jpeg图片
OutputStream out = new FileOutputStream(savepath);
out.write(b);
out.flush();
out.close();
return true;
}
catch (Exception e)
{
return false;
}
}
原文:https://www.cnblogs.com/momo1210/p/9708785.html
java图片转成字符串_JAVA将图片(本地或者网络资源)转为Base64字符串,将base64字符串存储为本地图片...相关推荐
- java正则表达式分割字符串_Java开发笔记(三十七)利用正则串分割字符串
前面介绍了处理字符串的常用方法,还有一种分割字符串的场景也很常见,也就是按照某个规则将字符串切割为若干子串.分割规则通常是指定某个分隔符,根据字符串内部的分隔符将字符串进行分割,例如逗号.空格等等都可 ...
- java 配置写成表达式_Java的正则表达式之小结
一直很奇怪为什么Java和Tcl的正则表达式之间有这样的一个差异,即Tcl正则表达式中的转义符\在Java正则表达式中一律会需要写成\\. 比如,Tcl的正则表达式为 "^Case\_nam ...
- java integer转成负数_Java 十进制和十六制之间的转化(负数的处理)
在一些情况下,我们需要将数字在十进制和十六制下互相转化. 在Java中将十进制转化成十六进制非常的简单. int var = 324; String hex = Integer.toHexString ...
- java 数字翻译成英文_Java实现将数字日期翻译成英文单词的工具类实例
本文实例讲述了Java实现将数字日期翻译成英文单词的工具类.分享给大家供大家参考,具体如下: package com.sunyard.etp.ag.util; import java.math.Big ...
- java 数字翻译成英文_Java实现数字日期翻译成英文单词的工具类案例分享
这篇文章主要介绍了Java实现将数字日期翻译成英文单词的工具类,结合完整实例形式分析了Java日期转换与字符串操作相关实现技巧,需要的朋友可以参考下 本文实例讲述了Java实现将数字日期翻译成英文单词 ...
- java汉字转换成拼音_Java代码将汉字转换成拼音
package com.sucre; //导入的jar包 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pi ...
- java 读取txt字符串_java读取txt文档需要匹配文档中的字符串
import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { public s ...
- java生成16位随机数_java中如何产生一个16位数字组成的随机字符串?谢谢各位了...
展开全部 方法如下: Random ran=new random(); boolean flag=true; while(flag){ int a=ran.nextInt(99999999); int ...
- java 时间 转化成数字_java时间转化数字
1 写出下面代码输出内容. package main import ( "fmt" ) funcmain() { defer_call() } funcdefer_c ...
- java 如何转化成机器指令_Java代码到底是如何编译成机器指令的
白衣染霜花 编译器把一种语言规范转化为另一种语言规范的这个过程需要哪些步骤?回答这个问题需要参照<编译原理>,总结过程如下: 1)词法分析:读取源代码,一个字节一个字节的读进 ...
最新文章
- Oracle排序排除null,oracle 排序(中文,null的处理)
- python如何保证输入键入数字
- PyTorch基础(15)-- torch.flatten()方法
- android.support不统一的问题
- ogc是一个非营利性组织_非营利组织的软件资源
- AIX 6.1安装JDK6环境变量设置
- 多线程的那点儿事(之顺序锁)
- javaScript的常见document对象
- Spark Streaming保存到HDFS目录中案例
- 动易php,动易CMS数据转成dedecms的php程序
- word上下的横线怎么去掉_word中去掉页面上的横线 word页面横线怎么去掉
- AE新手基础入门教程50套从新手到高手
- 工业和信息化部全国信息技术水平考试
- RestTemplate的用法
- Mybatis的where标签,还有这么多知识点
- 说不玩但是我还是玩了..
- MindMapper中的主题该怎样进行修改
- Android中自定义弧形的seekbar
- 区块链101:区块链和数据库的区别是什么?
- Emacs、cedet、ecb
热门文章
- 4.3 计算机网络之IPv4(IPv4分组、IPv4地址、NAT、子网划分与子网掩码、CIDR、ARP协议、DHCP、ICMP)
- Java双向链表快速排序_双向链表的插入,删除,以及链表的快速排序
- C\C++ 交换两个变量的方法
- #8ms平台,是一个支持ESP32/Sigamastar201、202/RK等硬件的开发平台,现平台Slogan有奖征集# 我们的广告语,将由你们来定!
- python 动态类型检测 性能_4种速度最慢的动态编程语言,你一定用过
- vi的插入模式下退格和方向键不能使用的解决方法
- ARM GIC简介与Linux中断处理分析
- java8 lambda 视频_一文搞懂Java8 Lambda表达式(附带视频教程)
- androidid什么时候会变_今天是“三九”为什么老话说:三九冰上走一走,过年也能露一手!...
- 法流程图_【对反应过程的笔记整理方法——时间轴法】