文档章节

Java使用Base64编码处理图片转String(方便传输)使用

完美世界
 完美世界
发布于 2014/06/04 23:17
字数 298
阅读 848
收藏 1
Java使用Base64编码处理图片转String(方便传输)使用
/**
 * 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
 * @param imgFilePath
 * @return
 */
public static String GetImageStr(String imgFilePath) {
byte[] data = null;
// 读取图片字节数组
try {
InputStream in = new FileInputStream(imgFilePath);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
// 返回Base64编码过的字节数组字符串
return encoder.encode(data);
}
/**
 * 对字节数组字符串进行Base64解码并生成图片
 * @param imgStr
 * @param filePath
 * @param fileName
 * @return
 */
public static boolean GenerateImage(String imgStr, String filePath, String fileName) {
if (imgStr == null){ // 图像数据为空
return false;
}
BASE64Decoder decoder = new BASE64Decoder();
try {
// Base64解码
byte[] bytes = decoder.decodeBuffer(imgStr);
for (int i = 0; i < bytes.length; ++i) {
if (bytes[i] < 0) {// 调整异常数据
bytes[i] += 256;
}
}
String imgFilePath =  FileUtils.getFilePath(filePath, fileName);
// 生成图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(bytes);
out.flush();
out.close();
return true;
} catch (Exception e) {
return false;
}
}
/**
 * 获取文件路径
 * @param dir
 * @param fileName
 * @return
 */
 public static String getFilePath(String dir, String fileName) {
String fileSeparator = System.getProperty(“file.separator”);
if (!dir.endsWith(fileSeparator)) {
dir += fileSeparator;
}
File file = new File(dir);
if (!file.isDirectory()) { // 如果文件夹不存在就新建
file.mkdirs();
}
return dir + fileName;
}


© 著作权归作者所有

共有 人打赏支持
完美世界
粉丝 10
博文 151
码字总数 134011
作品 0
西城
高级程序员
web服务与二进制数据传输介绍

图片、影音等类似的这些二进制数据如何作为参数传入,或者作为返回值从web服务操作中返回?只有进行类型转换了。基于SOAP的web服务用到的数据类型并不只局限于纯文本,但是这些web服务对于二...

柳哥
2014/05/21
0
0
Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC

加密解密,曾经是我一个毕业设计的重要组件。在工作了多年以后回想当时那个加密、解密算法,实在是太单纯了。 言归正传,这里我们主要描述Java已经实现的一些加密解密算法,最后介绍数字证书...

mrliuze
2015/05/27
0
0
java单向加密算法小结(1)--Base64算法

  从这一篇起整理一下常见的加密算法以及在java中使用的demo,首先从最简单的开始. 简单了解 Base64严格来说并不是一种加密算法,而是一种编码/解码的实现方式.   我们都知道,数据在计算机...

冬至饮雪
2016/11/03
0
0
java的System.getProperty()方法可以获取的值

java.version Java 运行时环境版本 java.vendor Java 运行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装目录 java.vm.specification.version Java 虚拟机规范版本 ja...

cRaZy_JaZa
2013/10/16
0
0
区块链100讲:一篇文章彻底弄懂Base64编码

在互联网中的每一刻,你可能都在享受着Base64带来的便捷,但对于Base64的基础原理又了解多少?本讲带领大家了解一下Base64的底层实现。 1 Base64的由来 目前Base64已经成为网络上常见的传输8...

HiBlock
08/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
48分钟前
4
1
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
58分钟前
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0
麒麟AI首席科学家现世

8月31日,华为发布了新一代顶级人工智能手机芯片麒麟980,成为全球首款7nm工艺手机芯片,AI方面也实现飞跃,支持人脸识别、物体识别、物体检测、图像分割、智能翻译等。 虽然如今人人都在热议...

问题终结者
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部