zoukankan      html  css  js  c++  java
  • java实现图片与base64字符串之间的转换

    package cn.com;
    
    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://test.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://222.jpg";//新生成的图片
                OutputStream out = new FileOutputStream(imgFilePath);    
                out.write(b);
                out.flush();
                out.close();
                return true;
            } 
            catch (Exception e) 
            {
                return false;
            }
        }
    }
  • 相关阅读:
    Eclipse和MyEclipse使用技巧--Eclipse各版本介绍
    专业分类
    Eclipse如何安装JD-Eclipse反编译插件
    JS生成UUID的方法实例
    第一章 Spring Security是什么?
    证件类型及编码含义
    银行机构代码
    html页面通过特殊链接:打电话,发短信,发邮件详细教程
    Eclipse修改Tomcat发布路径以及的配置多个Tomcat方法
    jquery实践案例--验证电子邮箱
  • 原文地址:https://www.cnblogs.com/smile361/p/4569367.html
Copyright © 2011-2022 走看看