java自带BASE64工具进行图片和字符串转换
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
java自带BASE64工具进行图片和字符串转换的更多相关文章
- java自带BASE64工具进行图片和字符串转换【转】
java自带BASE64工具进行图片和字符串转换 import java.io.File; import java.io.FileInputStream; import java.io.FileOut ...
- java使用google开源工具实现图片压缩【转】
jar包名 import net.coobird.thumbnailator.Thumbnails; import net.coobird.thumbnailator.geometry.Positio ...
- 问题:C#将base64转换成二进制图片;结果:c# Base64编码和图片的互相转换代码
c# Base64编码和图片的互相转换代码 Base64编码在Web方面有很多应用,譬如在URL.电子邮件方面.网上有很多相关的资源用于提供Base64编码和其他编码的转换,.Net Framewor ...
- java使用google开源工具实现图片压缩
前言 作为靠谱的java服务端程序员,图片这个事情一直是个头疼的事情. 现在很多网站上,都有上传图片这个功能,而图片对于现在的很多手机来说,拍摄出来的都是高清图片,分辨率也是相当的高,当然占用的存储空 ...
- PHP base64数据与图片的互相转换
1.解析base64数据成图片 The problem is that data:image/bmp;base64, is included in the encoded contents. This ...
- java日期操作的工具类时间格式的转换
package cn.itcast.oa.util; import java.text.ParseException; import java.text.SimpleDateFormat;import ...
- java自带命令工具
jstat,这个工具很强大,可以监测Java虚拟机GC多方面的状态,具体参数含义参见此链接: ./jstat -gc 84012 1000 3 S0C S1C S0U S1U ...
- java 自带的工具
前辈说,java的基本功的好坏,一个方面要看是否能熟练使用jdk bin下的工具使用情况. 自己整理一下使用的工具. ■ javac 一个编译java的工具,进入java所在文件的路径后,javac ...
- 如何用java自带的工具生成证书
一.keytool的概念 keytool 是个密钥和证书管理工具.它使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务.在 ...
随机推荐
- Document types require more than xhtml1.0
这个东西只会在比较低版本的浏览器中会出现,比如IE7及以下会出这个错误. 错误的根源是html页面没有考虑浏览器兼容性问题. 在页面头部加入下面的内容即可解决标题中的问题 <!DOCTYPE h ...
- python学习-day15:局部变量与全局变量、嵌套函数、递归
一.全局变量与局部变量 在子程序中定义的变量称为局部变量, 在程序的一开始定义的变量称为全局变量. 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序.当全局变量与局部变量同名时:在定义局部 ...
- SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移
SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移 上一篇文章已经为配置镜像数据库做好了准备,接下来就要进入真正的配置阶段 一.在镜像数据库服务器上设置安全性并启动数据 ...
- 有关项目上潜在需要的移动端GIS系统源码整理,待后续更新
GPS Tools For Android 前言: GPS数据在做GIS开发时的一份宝贵的数据,在不侵犯他人隐私的情况下通过互联网的模式收集GPS是成本最为低廉的一种模式. 背景: 现在公司在做一个项 ...
- NeHe OpenGL教程 第四十八课:轨迹球
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- javaSwing文本域文件
public class JTextAreaTest extends JFrame{ public JTextAreaTest() { setSize(200, 40 ...
- APP测试点总结
1.功能性测试: ——根据产品需求文档编写测试用例. ——软件设计文档编写用例. 注意:就是根据产品需求文档编写测试用例而进行测试.2.兼容性测试: ——android版本的兼容性 ——手机分辨率兼容 ...
- springMVC操作mongoDB增删改查
下面是mongoDb简单的增删改查(新闻类) 附:query.addCriteria(Criteria.where("modelId").ne("").ne(n ...
- [js]识别浏览器及版本
var userAgent = navigator.userAgent.toLowerCase();window.jQuery.browser = { version: (userAgent.m ...
- IO同步、异步与阻塞、非阻塞
一.同步与异步同步/异步, 它们是消息的通知机制 1. 概念解释A. 同步所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回. 按照这个定义,其实绝大多数函数都是同步调用(例如si ...