Java将byte[]转图片存储到本地的案例
作者:Curry_BB 时间:2021-08-30 08:19:12
Java中,将字节数组转成图片的有很多种方式,今天在这里记录其中一种,方便以后查询,也可以提供给没有接触的童鞋做一个参考。
首先是将图片转成字节数组
import sun.misc.BASE64Encoder;
import java.io.*;
// 传入图片路径,获取图片
FileInputStream fis = new FileInputStream("/Users/curry/error.png");
BufferedInputStream bis = new BufferedInputStream(fis);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buff = new byte[1024];
int len = 0;
while ((len = fis.read(buff)) != -1) {
bos.write(buff, 0, len);
}
// 得到图片的字节数组
byte[] result = bos.toByteArray();
// 将数组转为字符串
BASE64Encoder encoder = new BASE64Encoder();
String str = encoder.encode(result).trim();
将数组转为图片
import sun.misc.BASE64Decoder;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
BASE64Decoder decoder = new BASE64Decoder();
byte[] imgbyte = decoder.decodeBuffer("刚刚将字节数组转成的字符串");
OutputStream os = new FileOutputStream("/Users/curry/text.png");
os.write(imgbyte, 0, imgbyte.length);
os.flush();
os.close();
补充知识:java将图片转化为base64和base64转化为图片编码并保存在本地
我就废话不多说了,大家还是直接看代码吧~
public class Base64Convert {
/**
* @Description: 图片转化成base64字符串
* @param: path
* @Return:
*/
public static String GetImageStr(String path)
{
//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
//待处理的图片
String imgFile = path;
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();
//返回Base64编码过的字节数组字符串
return encoder.encode(data);
}
/**
* @Description: base64字符串转化成图片
* @param: imgStr
* @Return:
*/
public static boolean GenerateImage(String imgStr,String photoname)
{
//对字节数组字符串进行Base64解码并生成图片
//图像数据为空
if (imgStr == null)
return false;
BASE64Decoder decoder = new BASE64Decoder();
try
{
//Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for(int i=0;i<b.length;++i)
{
if(b[i]<0)
{
//调整异常数据
b[i]+=256;
}
}
//生成jpeg图片
String imagePath= Config.getUploadPhysicalPath();
//System.currentTimeMillis()
//新生成的图片
String imgFilePath = imagePath+photoname;
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
}
catch (Exception e)
{
return false;
}
}
}
来源:https://blog.csdn.net/Curry_BB/article/details/82659661
标签:@Slf4j注解,日志,输出
0
投稿
猜你喜欢
Java利用钉钉机器人实现发送群消息
2021-06-28 23:37:33
java快速生成数据库文档详情
2023-11-10 05:25:20
C++实现扫雷小游戏
2022-07-27 22:59:39
java Spring Boot 配置redis pom文件操作
2022-01-25 20:57:13
C#纹理画刷TextureBrush用法实例
2023-03-17 07:23:12
使用java获取md5值的两种方法
2021-06-18 10:30:30
Java Socket编程实例(四)- NIO TCP实践
2021-10-07 13:44:35
轻松学习C#的结构和类
2023-12-10 13:46:19
java中javaBean与Bean的深入理解
2021-11-27 13:19:11
Java设计模式之观察者模式(Observer模式)介绍
2022-10-16 04:40:42
Spring在多线程下@Resource注入为null的问题
2022-09-11 07:41:18
C# params可变参数的使用注意详析
2021-10-29 12:33:27
Android常用的图片加载库
2021-06-04 18:56:30
Flutter 给列表增加下拉刷新和上滑加载更多功能
2021-10-01 13:30:18
C#模板方法模式(Template Method Pattern)实例教程
2022-09-12 02:59:23
新手初学Java数组
2023-12-01 11:18:40
C#实现将程序运行信息写入日志的方法
2021-11-22 22:30:09
RocketMQ-延迟消息的处理流程介绍
2023-07-28 01:58:59
详解Java中LinkedHashMap
2022-05-23 16:24:45
Java计算文本MD5加密值的方法示例
2023-11-15 13:18:48