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

来源:互联网 发布:mac os10.13好用吗 编辑:程序博客网 时间:2024/04/28 02:29
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 = "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 = "222.jpg";//新生成的图片            OutputStream out = new FileOutputStream(imgFilePath);                out.write(b);            out.flush();            out.close();            return true;        }         catch (Exception e)         {            return false;        }    }}


转自:http://huangyuan027-163-com.iteye.com/blog/2000258

 

 

以上可能会出现找不到sun.misc.BASE64Encoder  和BASE64Decoder

 

解决办法:

1.右键项目-》属性-》java bulid path-》jre System Library-》access rules-》resolution选择accessible,下面填上** 点击确定即可!!!

2.

在MyEclipse中编写Java代码时,用到了BASE64Decoder,import sun.misc.BASE64Decoder;可是Eclipse提示:
Access restriction: The type BASE64Decoder is not accessible due to restriction on required library C:\Program
files\java\jre6\lib\rt.jar
Access restriction : The constructor BASE64Decoder() is not accessible due to restriction on required library C:\Program files\java\jre6\lib\rt.jar

解决方案1(推荐):
只需要在project build path中先移除JRE System Library,再添加库JRE System Library,重新编译后就一切正常了。
解决方案2:
Windows -> Preferences -> Java -> Compiler -> Errors/Warnings ->
Deprecated and trstricted API -> Forbidden reference (access rules): -> change to warning

 

 

转自:http://blog.csdn.net/jbxiaozi/article/details/7351768

 

0 0
原创粉丝点击