java编写之jpg图片与base64编码之间的转换
/**
* @author zyq
* 将网络图片进行Base64位编码
* @param imgUrl
*
*/
public static String encodeWebImageToBase64(URL imgUrl){ //传入图片url,将网络图片编码为base64编码
String webArray;
ByteArrayOutputStream outputStream = null; //字节数组流,可以捕获内存缓冲区的数据,转换成字节数组(拓展:ByteArrayInputStream: 可以将字节数组转化为输入流)
try {
BufferedImage bufferedImage = ImageIO.read(imgUrl); //Image是一个抽象列,BufferedImage是Image的实现,Image和BufferedImage的主要作用就是将一副图片加载到内存 中
outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage,"jpg",outputStream);//将BufferedImage对象直接写出指定输出流outputStream,图片格式为jpg
}catch (MalformedURLException e){ //URL协议、格式或者路径错误异常
e.printStackTrace();
}catch (IOException e1){ //输入输出异常
e1.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder(); //BASE64Encoder,字符串加密算法
webArray = encoder.encode(outputStream.toByteArray()); //编码为base64编码(方法参数为字节数组),其中outputStream.toByteArray()用于获取内存缓冲中的数据,并转换 为字节数组
return webArray;
}
/**
* @author zyq
* 将本地图片进行Base64位编码
* @param imageFile
*/
public static String encodeLocImageToBase64(File imageFile){
String locArray;
ByteArrayOutputStream outputStream = null;
try {
BufferedImage bufferedImage = ImageIO.read(imageFile);
outputStream = new ByteArrayOutputStream();
ImageIO.write(bufferedImage,"jpg",outputStream);
}catch (MalformedURLException e1){
e1.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
BASE64Encoder encoder = new BASE64Encoder();
locArray = encoder.encode(outputStream.toByteArray());
return locArray;
}
/**
* @author zyq
* 将base64编码的图片进行解码显示,并保存在指定路径
* @param base64code
* @param imagePath
* @param imageName
*/
public static void decodeBase64ToImage(String base64code,String imagePath,String imageName){
BASE64Decoder decoder = new BASE64Decoder(); //BASE64Decoder,base64编码解码算法,解码为字节数组
try {
FileOutputStream write = new FileOutputStream(new File(imagePath + imageName)); //文件输出流,是用于将数据写入File或 FileDescriptor的输出流,其中
File(imagePath + imageName)创建文件,参数为文件名(文件路径)
byte[] decoderBytes = decoder.decodeBuffer(base64code); //解码,方法参数为base64加密编码
write.write(decoderBytes); //decoderBytes数组写入文件
write.close(); //关闭此文件输出流并释放与此流有关的所有系统资源
}catch (IOException e){
e.printStackTrace();
}
}
java编写之jpg图片与base64编码之间的转换的更多相关文章
- 图片和base64编码字符串 互相转换,图片和byte数组互相转换
图片和base64编码字符串 互相转换 import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.io.*; ...
- java实现图片与base64字符串之间的转换
package cn.com; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOEx ...
- 图片的 base64 编码
图片的 base64 编码就是将一幅图片编码成一串字符串,使用该字符串代替图像地址.我们所看到的网页上的图片,都是需要消耗一个 http 请求下载而来的:(所有才有了 csssprites 技术< ...
- Base64编码 图片与base64编码互转
package com.education.util; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import jav ...
- JS 获取图片的base64编码
获取图片的base64编码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- PHP将图片转base64编码以及base64图片转换为图片并保存代码
图片转base64编码 /*图片转换为 base64格式编码*/ $img = 'uploads/01.png'; $base64_img = base64EncodeImage($img); ech ...
- 图片的Base64编码
Base64编码是一种图片处理格式,通过特定的算法将图片编码成一长串字符串,在页面上显示的时候,可以用该字符串来代替图片的url属性. 我们可以来看一下实际的效果 Base64编码效果 在上图中,我们 ...
- H5 Js图片转base64编码
<!Doctype html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 字符串与图片的Base64编码转换操作
//图片 转为 base64编码的文本 private void button1_Click(object sender, EventArgs e) { OpenFileDialog dlg = ne ...
随机推荐
- Maven 学习总结 (七) 之 灵活构建
一个优秀的构建系统必须足够灵活,他应该能够让项目在不同的环境下都能成功地构建.Maven为支持项目的灵活性,内置了三大特性,即属性.Profile和资源过滤. Maven属性 通过<proper ...
- C#代码使用Process类调用SWFTools工具
一.Process类调用SWFTools工具将PDF文档转为swf文档 1 string cmdStr = "D:\\SWFTools\\pdf2swf.exe"; string ...
- 认识Modbus协议
1.什么是Modbus? Modbus协议是应用于电子控制器上的一种通用语言.通过此协议,控制器相互之间,控制器经由网络(例如以太网)和其它设备之间可以通信.Modbus协议定义了一个控制器能认识使用 ...
- bootstrap时间格式化
/** * 将"2018-05-19T08:04:52.000+0000"这种格式的时间转化为正常格式 * @param time */ function timeFormat(t ...
- 将Chrome插件Momentum背景图片设为桌面壁纸
Momentum简介 Momentum插件是一款自动更换壁纸,自带时钟,任务日历和工作清单的chrome浏览器插件.官方的解释就是:替换你 Chrome 浏览器默认的“标签页”.里面的图片全部来自50 ...
- RandomAccessFile出现中文乱码问题
之前程序里调用了RandomAccessFile的writeByte(String str)方法,报文里存在中文的时候出现了乱码 后面换成了 write(byte b[])或writeBytes(by ...
- python3三角函数
三角函数 acos(x) 返回x的反余弦弧度值. asin(x) 返回x的反正弦弧度值. atan(x) 返回x的反正切弧度值. atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切 ...
- springboot2.1.3集成单节点elasticsearch6.4.0
本案例写了一个关于医生医院搜索的例子,包括求和模式下的打分(分值与相关性有关)搜索,单节点时切勿配置节点名称和节点ip.github地址:https://github.com/zhzhair/spri ...
- Asp.net Mvc 与WebForm 混合开发
根据项目实际需求,有时候会想在项目中实现Asp.net Mvc与Webform 混合开发,比如前台框架用MVC,后台框架用WebForm.其实要是实现也很简单,如下: (1)在MVC 中使用Web ...
- 题解 P4705 【玩游戏】
这题是真的神仙啊...居然用的 stl 来卡常? 话说 998244353 真的可以一眼 NTT ? noteskey 所以说只要推柿子就好了但是有的地方的推导根本就想不到... 我们令第 t 个答案 ...