图片数据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
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
- 图片数据Base64编解码(java实现)
- 图片数据Base64编解码(java实现)
- 图片数据Base64编解码(java实现)
- 图片数据Base64编解码(java实现)
- 图片数据Base64编解码(java实现)
- 图片数据Base64编解码(java实现)
- 图片数据Base64编解码(java实现)
- 图片数据Base64编解码(java实现)
- 图片数据Base64编解码(java实现)
- 图片数据Base64编解码(java实现)
- 图片数据Base64编解码(java实现)
- Java实现BASE64编解码
- Java实现BASE64编解码
- Java实现BASE64编解码
- java实现Base64编解码
- Java实现Base64互相编解码转换图片与字符串
- base64 编解码的 Java 实现
- Java 8实现BASE64编解码
- 对java的 cookie处理进行修正(附http的相关知识)
- 手机卫士1---程序代码组织结构
- Maven简介大全
- python中的yield
- Linux中的内存管理
- 图片数据Base64编解码(java实现)
- C++调用C#的库
- html如何控制input只能输入数字
- c++ template之trait技法总结 .
- Selenium WebDriver之JavaScript
- C++中类的静态数据成员函数解析
- C#集合框架
- [数论]HDOJ 2503 a/b + c/d 欧几里得算法
- iOS中如何呼出另一个应用