Java将byte[]转图片存储到本地的案例
Java中,将字节数组转成图片的有很多种方式,今天在这里记录其中一种,方便以后查询,也可以提供给没有接触的童鞋做一个参考。
首先是将图片转成字节数组
importsun.misc.BASE64Encoder;
importjava.io.*;
//传入图片路径,获取图片
FileInputStreamfis=newFileInputStream("/Users/curry/error.png");
BufferedInputStreambis=newBufferedInputStream(fis);
ByteArrayOutputStreambos=newByteArrayOutputStream();
byte[]buff=newbyte[1024];
intlen=0;
while((len=fis.read(buff))!=-1){
bos.write(buff,0,len);
}
//得到图片的字节数组
byte[]result=bos.toByteArray();
//将数组转为字符串
BASE64Encoderencoder=newBASE64Encoder();
Stringstr=encoder.encode(result).trim();
将数组转为图片
importsun.misc.BASE64Decoder;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.OutputStream;
BASE64Decoderdecoder=newBASE64Decoder();
byte[]imgbyte=decoder.decodeBuffer("刚刚将字节数组转成的字符串");
OutputStreamos=newFileOutputStream("/Users/curry/text.png");
os.write(imgbyte,0,imgbyte.length);
os.flush();
os.close();
补充知识:java将图片转化为base64和base64转化为图片编码并保存在本地
我就废话不多说了,大家还是直接看代码吧~
publicclassBase64Convert{
/**
*@Description:图片转化成base64字符串
*@param:path
*@Return:
*/
publicstaticStringGetImageStr(Stringpath)
{
//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
//待处理的图片
StringimgFile=path;
InputStreamin=null;
byte[]data=null;
//读取图片字节数组
try
{
in=newFileInputStream(imgFile);
data=newbyte[in.available()];
in.read(data);
in.close();
}
catch(IOExceptione)
{
e.printStackTrace();
}
//对字节数组Base64编码
BASE64Encoderencoder=newBASE64Encoder();
//返回Base64编码过的字节数组字符串
returnencoder.encode(data);
}
/**
*@Description:base64字符串转化成图片
*@param:imgStr
*@Return:
*/
publicstaticbooleanGenerateImage(StringimgStr,Stringphotoname)
{
//对字节数组字符串进行Base64解码并生成图片
//图像数据为空
if(imgStr==null)
returnfalse;
BASE64Decoderdecoder=newBASE64Decoder();
try
{
//Base64解码
byte[]b=decoder.decodeBuffer(imgStr);
for(inti=0;i
以上这篇Java将byte[]转图片存储到本地的案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。