java 实现 :Base64字符串 和 图片 之间的相互转换
2017-03-09 16:17
1026 查看
写这篇文章呢 主要是记录一下刚做过的一个很简单的功能,曲曲折折呀!
1.在线将Base64字符转和图片相互转换:http://imgbase64.duoshitong.com/
2.图片转Base64字符串:
// 图片转化成base64字符串---将图片文件转化为字节数组字符串,并对其进行Base64编码处理 public static String GetImageBase64Str() {// String imgFile = "d://one.jpg";// 待处理的图片 InputStream in = null; byte[] data = null; // 读取图片字节数组 try { in = new FileInputStream(imgFile); data = new byte[in.available()]; in.read(data); in.close(); } catch (IOException e) { e.printStackTrace(); } // 对字节数组Base64编码 BASE64Encoder encoder = new BASE64Encoder(); return encoder.encode(data);// 返回Base64编码过的字节数组字符串 }返回结果:
CkGZSpVSHONu3dnB9OmTXfh4041LzvtprbXz/P1POrSnFJw25rNNX011b6ef/Dno2iTghEUneRnkq2eeDgE4yB0/yPRdd2XLZRW11rbz/r5ml2436tfp5Pc9RtpSyhAWVmwoA5+Y8LxnkbsZ5PB57V0S laKa1v5eV+/6nDrrfe7NDqz4LfImw5GDuwQ+T35HGOme+a46k3NdOZbdrffe5rTpqd276Po/J/1/wSno0Qja7d8qjTyMGz2LE5Y9T3z+f0ly5bSg05Ravfbz8++56NebjTjCMl72lt+y++9tH0fqeweH rf7TcrdMCy2UUURYH5Wmni+XIxyRxgcY9euftchw0KnLXtLmdm7vS997br9X2PzHifGU+WWHjP39........
2.将Base64字符串转换为图片:
// base64字符串转化成图片---对字节数组字符串进行Base64解码并生成图片 public static boolean CreateImage(String imgStr) { if (imgStr == null) // 图像数据为空 return false; BASE64Decoder decoder = new BASE64Decoder(); try { // Base64解码 byte[] b = decoder.decodeBuffer(imgStr); for (int i = 0; i < b.length; ++i) { if (b[i] < 0) {// 调整异常数据 b[i] += 256; } } // 生成jpeg图片 String imgFilePath = "d://two.jpg";// 新生成的图片 OutputStream out = new FileOutputStream(imgFilePath); out.write(b); out.flush(); out.close(); return true; } catch (Exception e) { return false; } }执行结果:在d盘生成一样 two.jpg 的图片 ,内容其实就是one.jpg,这就说明正确了。
3.但是前台后合作,往往并不是那么愉快,前台传给你了参数,但是参数错误;
现在看一组,我在http://imgbase64.duoshitong.com/ 生成 Base64的字符串,格式是这样的:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAzMAAAHjCAIAAACYaNbnAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nOzdd1g UV9cA8DO7Q1dsICBio6hIjBXBaGxYCBaMRE1Ro0IEUURFo4kllqgh2EBUAsaS5I0mEFE0oAHLpxFrNAo2WIwIUm2owO7OzP3+mN1lKy6wKOr5PfMku7Mzd+4UmbPn3rlLEUIAIYQQ Qgg1AIJXXQGEEEIIISSDkRlCCCGEUEOBkRlCCCGEUEOBkRlCCCGEUEOBkRlCCCGEUENB9erV61XXASGEEELo9VZYWMgwTEFBQR3LoXDUDIQQQgihOmJZ9s6DxwM/mSy+drGkqKjW5 dAxh/81YLUQQgghhN5ayQkJN+4XWdvY1Do4oymgDFsnhBBCCKG3U........字符串是以 : “data:image/png;base64,” 开头的,这个码是正确的,但是java是不能正确解析的,前台传给后台的时候,一定要截掉才对(不截也能解析,但是保存成图片后,报一个 文件损坏的错误 )。 如果是后台自己获取图片的Base64的字符串,就不会发生这种情况。
相关文章推荐
- java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换
- 实例详解Java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换(不适用SUN公司的sun.misc.BASE64Encoder)
- java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换
- java实现图片与base64字符串之间的转换
- Java实现base64图片转换为base64字符串。base64字符串转换图片 之间的互相转换,并保存在本地。
- java实现base64字符串转换成图片保存
- java:实现字符串到二进制字符、16进制字符、unicode字符、base64字符之间的转换
- java实现图片image和字符串String的相互转换