Java 处理图片与base64 编码的相互转换的示例
程序员文章站
2024-02-15 20:26:28
今天项目优化了一下上传头像的功能。采用 imagecropper 插件完成裁剪图片的效果。
这个插件裁剪完的图片都是 base64 加密的字符串,上传头像也就涉及到了如何...
今天项目优化了一下上传头像的功能。采用 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 编码的相互转换的示例
-
Java实现文件和base64流的相互转换功能示例
-
Java实现base64图片编码数据转换为本地图片的方法
-
Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码
-
Java实现的时间戳与date对象相互转换功能示例
-
Java实现base64图片编码数据转换为本地图片的方法
-
Java实现的时间戳与date对象相互转换功能示例
-
Java实现文件和base64流的相互转换功能示例
-
C#实现字符串与图片的Base64编码转换操作示例
-
Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码