java base64转图片工具

硅谷探秘者 1399 0 0

工具类

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);
	}
}



评论区
请写下您的评论...
暂无评论...
猜你喜欢
工具 1488 java压缩zip类packagecom.dzqc.yx.util;importjava.io.File;importjava.io.FileInputStream
反编译 1393 java反编译(class、jar)jd-gui
其他 731 Aspose  Aspose.Total是Aspose公司旗下的最全的一套office文档管理方案,主要提供.net跟java两个开发语言的控件套包,通过它,可以有计划地操纵一些商业中最流行的文件格
工具 2064 javaweb验证码1.验证码的作用:防止恶意破解密码、刷票、论坛灌水、刷页。有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登录尝试,实际上使用验证码是现在很多网站通行的方
java基础 1719 httpget或post请求类(Java后端)packagecom.libawall.example.fileImage.controller;importjava.io.IOException
weblog 1605 javaMD5加密和和javascript加密该加密没有加盐java加密importjava.security.MessageDigest
工具 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
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。