java自带BASE64工具进行图片和字符串转换

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
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) throws Exception{
File inputFile = new File("src/test.jpg");// 放在src文件夹下 待处理的图片
String strImg = null;
if(inputFile.exists()){
strImg = getImageStr(inputFile);
System.out.println(inputFile.getPath()+"转换后的字符串:\n"+strImg);
} File outputFile = new File("src/testCopy.jpg");// 即将在src文件夹下 生成的图片
generateImage(outputFile,strImg);
} /**
* 图片转化成base64字符串
* @param inputFile 源图片文件路径
* @return
*/
public static String getImageStr(File inputFile) throws Exception{// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
InputStream in = null;
byte[] data = null;
// 读取图片字节数组
in = new FileInputStream(inputFile);
data = new byte[in.available()];
in.read(data);
in.close();
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);// 返回Base64编码过的字节数组字符串
} /**
* base64字符串转化成图片
* @param outputFile 输出目标图片
* @param imgStr BASE64字符串
* @return
*/
public static boolean generateImage( File outputFile ,String imgStr ) throws Exception{ // 对字节数组字符串进行Base64解码并生成图片
if (imgStr == null) // 图像数据为空
return false;
// imgStr = "";
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;
}
}
// 生成jpg图片
OutputStream out = new FileOutputStream(outputFile);
out.write(b);
out.flush();
out.close();
System.out.println("通过BASE64字符串\n"+imgStr+"\n 生成"+outputFile.getPath());
return true;
} catch (Exception e) {
return false;
}
}
}

打印结果

src\test.jpg转换后的BASE64字符串:
iVBORw0KGgoAAAANSUhEUgAAAFoAAAAZAQMAAACLqquDAAAABlBMVEUAAAD///+l2Z/dAAAAY0lE
QVR4nGNgIAOwf0DisDHg5DxA1mPAwMDfAONJANEBJA5DAkwPiAOTYTawYWCG6WF8kAaUYYRZfRio
h1kCicMA46QDjWb+AeVYAy1lg8kwgyywgHKcQQI3oJw0ZHfbMJAIALYtEHx6n3m7AAAAAElFTkSu
QmCC
通过BASE64字符串
iVBORw0KGgoAAAANSUhEUgAAAFoAAAAZAQMAAACLqquDAAAABlBMVEUAAAD///+l2Z/dAAAAY0lE
QVR4nGNgIAOwf0DisDHg5DxA1mPAwMDfAONJANEBJA5DAkwPiAOTYTawYWCG6WF8kAaUYYRZfRio
h1kCicMA46QDjWb+AeVYAy1lg8kwgyywgHKcQQI3oJw0ZHfbMJAIALYtEHx6n3m7AAAAAElFTkSu
QmCC
生成src\testCopy.jpg

引用自: http://blog.csdn.net/hfhwfw/article/details/5544408

java自带BASE64工具进行图片和字符串转换的更多相关文章

  1. java自带BASE64工具进行图片和字符串转换【转】

    java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...

  2. java使用google开源工具实现图片压缩【转】

    jar包名 import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.geometry.Positio ...

  3. 问题:C#将base64转换成二进制图片;结果:c# Base64编码和图片的互相转换代码

    c# Base64编码和图片的互相转换代码 Base64编码在Web方面有很多应用,譬如在URL.电子邮件方面.网上有很多相关的资源用于提供Base64编码和其他编码的转换,.Net Framewor ...

  4. java使用google开源工具实现图片压缩

    前言 作为靠谱的java服务端程序员,图片这个事情一直是个头疼的事情. 现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的都是高清图片,分辨率也是相当的高,当然占用的存储空 ...

  5. PHP base64数据与图片的互相转换

    1.解析base64数据成图片 The problem is that data:image/bmp;base64, is included in the encoded contents. This ...

  6. java日期操作的工具类时间格式的转换

    package cn.itcast.oa.util; import java.text.ParseException; import java.text.SimpleDateFormat;import ...

  7. java自带命令工具

    jstat,这个工具很强大,可以监测Java虚拟机GC多方面的状态,具体参数含义参见此链接: ./jstat -gc 84012 1000 3 S0C    S1C    S0U    S1U     ...

  8. java 自带的工具

    前辈说,java的基本功的好坏,一个方面要看是否能熟练使用jdk bin下的工具使用情况. 自己整理一下使用的工具. ■ javac 一个编译java的工具,进入java所在文件的路径后,javac ...

  9. 如何用java自带的工具生成证书

    一.keytool的概念 keytool 是个密钥和证书管理工具.它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务.在 ...

随机推荐

  1. uva 11582

    #include <iostream> #include <map> #include <cmath> #include <vector> #inclu ...

  2. 【转载】非线性分析中的ansys跟踪显示

    原文地址:http://muchong.com/html/201209/4936556.html 在ansys output windows 有 force convergenge valu 值 和 ...

  3. 转--Eclipse中ctrl+shift+r与ctrl+shift+t的区别

    Eclipse中ctrl+shift+r与ctrl+shift+t的区别 标签: 快捷键工作区文件搜索打开资源文件 2016-09-13 15:44 292人阅读 评论(0) 收藏 举报  分类: e ...

  4. eclipse 设置默认编码为Utf-8

    Window->Preferences->General ->Content Type->Text->JSP 最下面设置为UTF-8 Window->Prefere ...

  5. 基于MATLAB的GUI(Graphical User Interface)音频实时显示设计

    摘要:本文章的设计主要讲基于matlab的gui音频实时显示设计,此次设计的gui相当于一个简洁的音乐播放器,界面只有”录音“和”播放“两个控件,哈哈,够简洁吧.通过”录音“按钮可以实现声音从电脑的声 ...

  6. Python---MySQL相关操作

    MySQL数据库操作 显示数据 SHOW DATABASES; #默认数据库: #mysql - 用户权限相关数据 #test - 用于用户测试数据 #information_schema - MyS ...

  7. RestTemplate

    RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率.调用RestTemplate的 ...

  8. jmf找不到摄像头设备解决办法

    1.安装的jdk需要时32位的. 2.在jmfregistry中注册捕获设备. 3.jar文件必须和配置文件在一起.可以新建User library把jar文件添加进去.

  9. 织梦如何重新安装 织梦dir 二次安装

    一般安装过一次织梦就不需要重新再去下载安装第二次了,我们可以在原有的基础上重新安装一次.这个是织梦cms后台自带的功能,还比较方便,下面小编就分享下如何重装织梦. 如果在本地重装要打开集成环境,在浏览 ...

  10. (JS实现顾客商品浏览记录以及购物车)Cookie的保存与删除

    //JS实现顾客浏览商品的记录以及实现购物车的功能function setCookie(name,value) { var Days = 30; var exp = new Date(); exp.s ...