图片数据Base64编解码(java实现)

来源:互联网 发布:centos7安装apache 编辑:程序博客网 时间:2024/04/28 09:15

原作者博客:http://phinecos.cnblogs.com/

原文出处:http://www.cnblogs.com/phinecos/archive/2008/09/23/1297292.html

package com.vista.test;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 MyTest {    public static void main(String[] args)    {        String strImg = GetImageStr();        GenerateImage(strImg);    }    public static String GetImageStr()    {//将图片文件转化为字节数组字符串,并对其进行Base64编码处理        String imgFile = "d:\\111.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编码过的字节数组字符串    }    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;        }    }}


0 0
原创粉丝点击