今天项目优化了一下上传头像的功能。采用 imagecropper 插件完成裁剪图片的效果。

这个插件裁剪完的图片都是 base64 加密的字符串,上传头像也就涉及到了如何把加密的字符串转换成图片的问题。
以下是代码:
/**
* @Description: 将base64编码字符串转换为图片
* @Author:
* @CreateTime:
* @param imgStr base64编码字符串
* @param path 图片路径-具体到文件
* @return
*/
public static boolean generateImage(String imgStr, String path) {
if (imgStr == null)
return false;
BASE64Decoder decoder = new BASE64Decoder();
try {
// 解密
byte[] b = decoder.decodeBuffer(imgStr);
// 处理数据
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {
b[i] += 256;
}
}
OutputStream out = new FileOutputStream(path);
out.write(b);
out.flush();
out.close();
return true;
} catch (Exception e) {
return false;
}
}
解密自然也有加密。以下是加密:
/**
* @Description: 根据图片地址转换为base64编码字符串
* @Author:
* @CreateTime:
* @return
*/
public static String getImageStr(String imgFile) {
InputStream inputStream = null;
byte[] data = null;
try {
inputStream = new FileInputStream(imgFile);
data = new byte[inputStream.available()];
inputStream.read(data);
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
// 加密
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);
}
再贴一个测试的main函数
/**
* 示例
*/
public static void main(String[] args) {
String strImg = getImageStr("F:/86619-106.jpg");
System.out.println(strImg);
generateImage(strImg, "F:/86619-107.jpg");
}
好了,打完收工。
不过需要注意的是,一般插件返回的base64编码的字符串都是有一个前缀的。
"data:image/jpeg;base64," 解码之前这个得去掉。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Java
# 图片转换base64编码
# 图片转换为base64编码
# Java实现图片与Base64编码互转
# Java实现BASE64编码和解码的方法
# java自定义实现base64编码转换
# java使用Base64编码实例
# Java处理图片实现base64编码转换
# JAVA实现Base64编码的三种方式
# 什么是Base64以及在Java中如何使用Base64编码
# 都是
# 转换为
# 的是
# 上传
# 也有
# 好了
# 也就
# 转换成
# 打完
# 需要注意
# 大家多多
# 有一个
# boolean
# generateImage
# String
# path
# return
# public
# static
# decodeBuffer
相关文章:
详解jQuery停止动画——stop()方法的使用
javascript基本数据类型及类型检测常用方法小结
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?
阿里云网站制作公司,阿里云快速搭建网站好用吗?
网站代码制作软件有哪些,如何生成自己网站的代码?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
活动邀请函制作网站有哪些,活动邀请函文案?
如何彻底卸载建站之星软件?
,制作一个手机app网站要多少钱?
建站org新手必看:2024最新搭建流程与模板选择技巧
如何在云服务器上快速搭建个人网站?
微信小程序 五星评分(包括半颗星评分)实例代码
小说建站VPS选用指南:性能对比、配置优化与建站方案解析
宝塔Windows建站如何避免显示默认IIS页面?
简单实现Android验证码
文字头像制作网站推荐软件,醒图能自动配文字吗?
建站之星logo尺寸如何设置最合适?
简单实现Android文件上传
php json中文编码为null的解决办法
如何高效配置IIS服务器搭建网站?
如何配置WinSCP新建站点的密钥验证步骤?
如何快速生成橙子建站落地页链接?
免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
建站之星安装后界面空白如何解决?
5种Android数据存储方式汇总
建站主机类型有哪些?如何正确选型
建站主机服务器选购指南:轻量应用与VPS配置解析
怎么将XML数据可视化 D3.js加载XML
如何快速使用云服务器搭建个人网站?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
如何在景安服务器上快速搭建个人网站?
北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
香港服务器部署网站为何提示未备案?
湖北网站制作公司有哪些,湖北清能集团官网?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
如何在香港免费服务器上快速搭建网站?
建站主机选购指南:核心配置优化与品牌推荐方案
如何用景安虚拟主机手机版绑定域名建站?
宝塔新建站点为何无法访问?如何排查?
七夕网站制作视频,七夕大促活动怎么报名?
广州商城建站系统开发成本与周期如何控制?
免费网站制作appp,免费制作app哪个平台好?
制作网站外包平台,自动化接单网站有哪些?
孙琪峥织梦建站教程如何优化数据库安全?
定制建站价位费用解析与套餐推荐全攻略
手机网站制作与建设方案,手机网站如何建设?
北京网站制作网页,网站升级改版需要多久?
*请认真填写需求信息,我们会在24小时内与您取得联系。