java 后台将base64字符串保存为图片的方法

 更新时间:2017年09月22日 10:25:48   作者:Mr_伍先生  
本篇文章主要介绍了java 后台将base64字符串保存为图片的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

本文介绍了java 后台将base64字符串保存为图片的方法,分享给大家,具体如下:

直接上代码:

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:\\tupian\\a.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:\\tupian\\new.jpg";//新生成的图片 
      OutputStream out = new FileOutputStream(imgFilePath);   
      out.write(b); 
      out.flush(); 
      out.close(); 
      return true; 
    }  
    catch (Exception e)  
    { 
      return false; 
    } 
  } 
} 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • MyBatis多对多一对多关系查询嵌套处理

    MyBatis多对多一对多关系查询嵌套处理

    这篇文章主要为大家介绍了MyBatis多对多一对多关系查询嵌套处理示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Java中的常用输入输出语句的操作代码

    Java中的常用输入输出语句的操作代码

    这篇文章主要介绍了Java中的常用输入输出语句的操作代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 如何使用JAVA调用SHELL

    如何使用JAVA调用SHELL

    这篇文章主要介绍了如何使用JAVA调用SHELL,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • Java事件处理步骤讲解

    Java事件处理步骤讲解

    今天小编就为大家分享一篇关于Java事件处理步骤讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Java之String类型的编码方式转换

    Java之String类型的编码方式转换

    这篇文章主要介绍了Java之String类型的编码方式转换,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • IDEA创建Java Web项目不能及时刷新HTML或JSP页面问题

    IDEA创建Java Web项目不能及时刷新HTML或JSP页面问题

    这篇文章主要介绍了IDEA创建Java Web项目不能及时刷新HTML或JSP页面问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • 基于restTemplate遇到的编码问题及解决

    基于restTemplate遇到的编码问题及解决

    这篇文章主要介绍了restTemplate遇到的编码问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • SpringBoot整合SpringSecurity和JWT和Redis实现统一鉴权认证

    SpringBoot整合SpringSecurity和JWT和Redis实现统一鉴权认证

    Spring Security是一个可以为Java应用程序提供全面安全服务的框架,同时它也可以轻松扩展以满足自定义需求,本文主要介绍了SpringBoot整合SpringSecurity和JWT和Redis实现统一鉴权认证,感兴趣的可以了解一下
    2023-11-11
  • 优惠券优惠的思路以及实践

    优惠券优惠的思路以及实践

    本文主要介绍了优惠券优惠的思路以及实践。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • SpringBoot定时任务两种(Spring Schedule 与 Quartz 整合 )实现方法

    SpringBoot定时任务两种(Spring Schedule 与 Quartz 整合 )实现方法

    本篇文章主要介绍了SpringBoot定时任务两种(Spring Schedule 与 Quartz 整合 )实现方法,详细的介绍了Spring Schedule 与 Quartz 整合的两种方法,有兴趣的可以了解一下。
    2017-03-03

最新评论