java实现base64字符串转换成图片保存
现在不管是博客论坛还是企业办公,都离不开资源的共享。通过文件上传的方式,与大家同分享,从而达到大众间广泛的沟通和交流,我们既可以从中获得更多的知识和经验,也能通过他人的反馈达到自我改进和提升的目的。
下面介绍文件如何从本地发送到服务器的
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;
public class Base64Test
{
public static void main(String[] args)
{
String strImg = GetImageStr();
System.out.println(strImg);
GenerateImage(strImg);
}
//图片转化成base64字符串
public static String GetImageStr()
{//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
String imgFile = "D:\360CloudUI\tupian\jt.jpg";//待处理的图片
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 imgStr)
{ //对字节数组字符串进行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 imgFilePath = "D:\360CloudUI\tupian\new.jpg";//新生成的图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
}
catch (Exception e)
{
return false;
}
}
}
package zPicture;
public class Picture {
public static final String DATA_IMAGE_PATH = PathUtil.getProjectPath(Picture.class, "zMP3").replace("zMP3","TEST/images/");
public static boolean test() {
System.out.println(DATA_IMAGE_PATH);
String imageName = null;
try {
imageName = CustomStringUtil.getExtension();
// String imageName="";
//图片存储路径
String imagePath = DATA_IMAGE_PATH + imageName + ".jpg" ;
String imageBase64="/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAA8AFoDASIA
AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA
AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm
p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA
AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK
U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3
uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+/ivw
v/aK/wCC3Hh74W/Grxt8J/gh+zV4h/aD0n4XeJr7wX8R/iKnxT8L/Djw8vjHRZmtvFPhf4cWuqaD
4jn8eal4TvUm0XXbvUJvC2gQ+I7W/wBGs9aumtproe9f8FZf2yfiP+yl8GPAXhX4JGw074xftC+L
tZ+HvhHxrq9l/aGmfDPQdG8Ia34l8afEWPS3ZbfW/EWi2FpZaf4Q0S9cadP4j1Sx1LVY7nR9N1LT
5f5aPDHh6y8J6Dp+gWE15dQ2Mchm1DU7l7zVtW1C6uZ73VNb1m+lPm3+sa3qNxc6rq99KTLd6ldX
Vy53Oc/i/id4jYrhqth8nyKrCOZ+5iMbWqYeFaFDDzUnRoxjVUoSqV0ueb5W6dPktJTk2f6H/Qz+
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
";
String imageType="jpg";
//将字符串转化成图片
boolean isSuccess = CustomStringUtil.base64StringToImage(imageBase64, imagePath,imageType);
System.out.println(isSuccess);
return isSuccess;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
public static void main(String[] args) {
test();
}
}
1.测试类
package zPicture;
public class PathUtil {
/**
* 获取工程路径
* @param T
* @param projectName
* @return
*/
public static String getProjectPath(Class<?> T,String projectName){
String path = T.getResource("/").toString();
System.out.println(path);
path = path.substring(0,path.indexOf(projectName))+projectName;
System.out.println(projectName);
System.out.println(path);
System.out.println(path.charAt(1));
System.out.println(path.indexOf(":"));//4
path = path.substring(path.indexOf(":")+1,path.length());
System.out.println(path);// /D:/workspace2/zMP3
// file:/D:/workspace2/zMP3/build/classes/
// zMP3
// file:/D:/workspace2/zMP3
// path+="/WEB-INF/classes/setting.properties";
path = path.replaceAll("%20", " ");
System.out.println(path);
return path;
}
}
2.工具类
3.工具类(2)
package zPicture;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Calendar;
import javax.imageio.ImageIO;
import org.apache.commons.lang3.StringUtils;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class CustomStringUtil {
/**
* 输出异常
*
* @param e
* @return
*/
public static String getErrorInfoFromException(Exception e) {
try {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
return "
" + sw.toString() + "
";
} catch (Exception e2) {
return "bad getErrorInfoFromException";
}
}
/**
* 图片转字符串
* @return
*/
public static String getImageBinary(String imagePath,String imageType) {
BASE64Encoder encoder = new sun.misc.BASE64Encoder();
File f = new File(imagePath);
BufferedImage bi;
try {
bi = ImageIO.read(f);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageIO.write(bi, imageType, baos);
byte[] bytes = baos.toByteArray();
return encoder.encodeBuffer(bytes).trim();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 字符串转图片
* @param base64String
*/
public static boolean base64StringToImage(String base64String,String toImagePath,String imageType) {
try {
BASE64Decoder decoder = new sun.misc.BASE64Decoder();
byte[] bytes1 = decoder.decodeBuffer(base64String);
ByteArrayInputStream bais = new ByteArrayInputStream(bytes1);
RenderedImage bi1 = ImageIO.read(bais);
File w2 = new File(toImagePath);// 可以是jpg,png,gif格式
if(!w2.exists()){
w2.createNewFile();
System.out.println("no exist=====");
}
System.out.println("pass...........");
return ImageIO.write(bi1, imageType, w2);// 不管输出什么格式图片,此处不需改动
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
/**
* 获取时间随机数
* @return
* @throws Exception
*/
public static String getExtension()throws Exception{
try {
//线程睡会
Thread.sleep(1);
//生成日期实体
Calendar calendar = Calendar.getInstance();
String extension = calendar.getTime().getTime()+"";
return extension;//专网及EZVP公网
} catch (InterruptedException e) {
e.printStackTrace();
return null;
}
}
/**
* 将数组转换为字符串
* @param array 数组对象
* @param separator 分割字符
* @return
* @throws Exception
*/
public static String getArrayToString(Object[] array, String separator)throws Exception{
String resultStr = StringUtils.join(array, separator);
return resultStr;
}
}
}
附加一篇转载帮助大家更好的理解:下面可实现图片与字符串互转
package zPicture;
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;
public class Base64Test
{
public static void main(String[] args)
{
String strImg = GetImageStr();
System.out.println(strImg);
GenerateImage(strImg);
}
//图片转化成base64字符串
public static String GetImageStr()
{//将图片文件转化为字节数组字符串,并对其进行Base64编码处理
String imgFile = "D:\360CloudUI\tupian\jt.jpg";//待处理的图片
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 imgStr)
{ //对字节数组字符串进行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 imgFilePath = "D:\360CloudUI\tupian\new.jpg";//新生成的图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
}
catch (Exception e)
{
return false;
}
}
}
附加一篇转载文件帮助大家理解图片转成字符串,下面介绍的是图片base64编码与解码代码
package zPicture;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;public class Base64Test { public static void main(String[] args) { String strImg = GetImageStr(); System.out.println(strImg); GenerateImage(strImg); } //图片转化成base64字符串 public static String GetImageStr() {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理 String imgFile = "D:\360CloudUI\tupian\jt.jpg";//待处理的图片 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 imgStr) { //对字节数组字符串进行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 imgFilePath = "D:\360CloudUI\tupian\new.jsp";//新生成的图片 OutputStream out = new FileOutputStream(imgFilePath); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } }}