java jpg解码_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();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值