java base64转图片工具
工具类
package com.dzqc.yx.util;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* base64工具类
* @author jiajia
*
*/
@SuppressWarnings("restriction")
public class Base64Test {
public static void main(String[] args) {
String strImg = GetImageStr();
System.out.println(strImg);
}
// 图片转化成base64字符串
public static String GetImageStr() {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
String imgFile = "D:\\test\\a.png";// 待处理的图片
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 boolean GenerateImage(String imgStr,String filepath) { // 对字节数组字符串进行Base64解码并生成图片
if (imgStr == null) // 图像数据为空
return false;
BASE64Decoder decoder = new BASE64Decoder();
OutputStream out=null;
try {
// Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpeg图片
out = new FileOutputStream(filepath);
out.write(b);
out.flush();
return true;
} catch (Exception e) {
return false;
}finally {
if(out!=null) {
try {
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
测试
package com.dzqc.yx.img;
import com.dzqc.yx.util.Base64Test;
public class Base64TestMain {
public static void main(String[] args) {
test("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAATCAYAAACQjC21AAABxklEQVQ4jY2UzStEYRTGn/veOzNIkVIoCyGl5COzoChlFoi9bKz9BbKxIguxsGQrZUWJjYVSslKatYUFSfJRvt37vu7zcrlfM3Ofemvmnuf83nPmzjnG2PSKQkhKSkhpu8fRx5MQ5u+xYAgRTtOyCsFMITE50YfhgU401NXg+uYeh8fn2N47hePGBeKhhr9CD+bYH1iam0JPR3Mk4Sx/gdnFTZhWJrbSyBVscWSoKxZG8Tnj/p+iIFApqY3juWys2RPj9NFfEphJW2hpqi8KZJy+kkCqtqayKKyU7w/480IcpFNmIiB9um0ZrPIf6JavlEJ/b1siIH30h9sOAKEc5Aa7EwG1T0VfjAaybAZam+r0nziJ6KNfd+Zr21ehQrarJRHME/3Mi1Toqb21UY9YEtFHf1h/QA79w9ML5pc3EwHpu3981nmxQMMQWFnfx+XVA45O8kVhjNO3unGg8yJADrgwLZhmyv1iYmvnGLYdP6t8zjh99DPPvyAC64u3VVdVYmZ6FLd3T/iybby9f+L17QMV5RmUl6WRsiwdX1jbxcurHbkwsr5+FgSXq4ydVV4q2BFXl/s5vL6CFTIooc0FFnIAHLdgvwGNTdUsa9zCpQAAAABJRU5ErkJggg==");
}
public static void test(String file) {
String suffix = "."+file.substring(file.indexOf("/")+1,file.indexOf(";"));
String s = file.substring(file.indexOf(",")+1,file.length());
new Base64Test().GenerateImage(s, "D://test/test//a"+suffix);
}
}
评论区
请写下您的评论...
猜你喜欢
blog
java压缩zip工具类
工具
1488
java压缩zip工具类packagecom.dzqc.yx.util;importjava.io.File;importjava.io.FileInputStream
反编译
1393
java反编译工具(class、jar)jd-gui
blog
Aspose实现word转图片、pdf
其他
731
Aspose Aspose.Total是Aspose公司旗下的最全的一套office文档管理方案,主要提供.net跟java两个开发语言的控件套包,通过它,可以有计划地操纵一些商业中最流行的文件格
blog
java web图片验证码
工具
2064
javaweb图片验证码1.验证码的作用:防止恶意破解密码、刷票、论坛灌水、刷页。有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试,实际上使用验证码是现在很多网站通行的方
java基础
1719
httpget或post请求工具类(Java后端)packagecom.libawall.example.fileImage.controller;importjava.io.IOException
weblog
1605
javaMD5加密和和javascript加密该加密工具没有加盐java加密工具importjava.security.MessageDigest
blog
java解压zip工具类
工具
1630
packageunzip;importjava.io.File;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.Enumeration;importjava.util.zip.ZipEntry;importjava.util.zip.ZipFile;
weblog
1861
java服务端实现sha256加密importjava.io.UnsupportedEncodingException;importjava.security.MessageDigest
最新发表
归档
2018-11
12
2018-12
33
2019-01
28
2019-02
28
2019-03
32
2019-04
27
2019-05
33
2019-06
6
2019-07
12
2019-08
12
2019-09
21
2019-10
8
2019-11
15
2019-12
25
2020-01
9
2020-02
5
2020-03
16
2020-04
4
2020-06
1
2020-07
7
2020-08
13
2020-09
9
2020-10
5
2020-12
3
2021-01
1
2021-02
5
2021-03
7
2021-04
4
2021-05
4
2021-06
1
2021-07
7
2021-08
2
2021-09
8
2021-10
9
2021-11
16
2021-12
14
2022-01
7
2022-05
1
2022-08
3
2022-09
2
2022-10
2
2022-12
5
2023-01
3
2023-02
1
2023-03
4
2023-04
2
2023-06
3
2023-07
4
2023-08
1
2023-10
1
2024-02
1
2024-03
1
2024-04
1
标签
算法基础
linux
前端
c++
数据结构
框架
数据库
计算机基础
储备知识
java基础
ASM
其他
深入理解java虚拟机
nginx
git
消息中间件
搜索
maven
redis
docker
dubbo
vue
导入导出
软件使用
idea插件
协议
无聊的知识
jenkins
springboot
mqtt协议
keepalived
minio
mysql
ensp
网络基础
xxl-job
rabbitmq
haproxy
srs
音视频
webrtc
javascript
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。