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;
            }
        }
    }
  • 相关阅读:
    【乱侃】How do they look them ?
    【softeware】Messy code,some bug of Youdao notebook in EN win7
    【随谈】designing the login page of our project
    【web】Ad in security code, making good use of resource
    SQL数据库内存设置篇
    关系数据库的查询优化策略
    利用SQL未公开的存储过程实现分页
    sql语句总结
    sql中使用cmd命令注销登录用户
    SQLServer 分页存储过程
  • 原文地址:https://www.cnblogs.com/smile361/p/4569367.html
Copyright © 2011-2022 走看看