公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
很多初学者可能不知道什么是 urlencode、urldecode 以及图片的 Base64 编码。今天我就给大家写一篇 Java 处理 Base64 编码图片的教程。
这个问题也是群里网友的提问,关于他的问题,我写了这篇文章!
编码与解码代码非常的简单,我直接贴出来,如下所示:
import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import javax.imageio.ImageIO; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; /** * @author www.xttblog.com */ public class ImageUtils { /** * 将网络图片进行Base64位编码 * @param imgUrl 图片的url路径,如http://.....xx.jpg * @return */ public static String encodeImgageToBase64(URL imageUrl) { // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 ByteArrayOutputStream outputStream = null; try { BufferedImage bufferedImage = ImageIO.read(imageUrl); outputStream = new ByteArrayOutputStream(); ImageIO.write(bufferedImage, "jpg", outputStream); } catch (MalformedURLException e1) { e1.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } // 对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); // 返回Base64编码过的字节数组字符串 return encoder.encode(outputStream.toByteArray()); } /** * 将本地图片进行Base64位编码 * @param imgUrl 图片的url路径,如http://.....xx.jpg * @return */ public static String encodeImgageToBase64(File imageFile) { // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理 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(); } // 对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); // 返回Base64编码过的字节数组字符串 return encoder.encode(outputStream.toByteArray()); } /** * @param base64编码的图片信息 * @return */ public static void decodeBase64ToImage(String base64, String path, String imgName) { BASE64Decoder decoder = new BASE64Decoder(); try { FileOutputStream write = new FileOutputStream(new File(path + imgName)); byte[] decoderBytes = decoder.decodeBuffer(base64); write.write(decoderBytes); write.close(); } catch (IOException e) { e.printStackTrace(); } } }
Base64 编码后的图片,都是以 data:image/jpeg;base64 开头的。
编码后的图片,我们就可以在 html 中直接使用。
<html> <body> <img src='data:image/jpg;base64,/9j/......'/> </body> </html>
如果是第三方的接口调用,转化成 Base64 后的图片,就不需要再经过上传操作了。第三方直接拿到 Base64 后的图片数据,进行分析,处理。
以百度的人脸识别接口,就是这样的。https://ai.baidu.com/docs#/Face-Detect-V3/top。百度给的案例介绍的已经非常的清楚了。如果到这里你还不懂这个接口怎么调用,那我也没办法了。
最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » Java 中使用 Base64 编码处理图片的教程