调用支付宝的人脸集合查询图片的Base64解码

优采云 发布时间: 2020-08-06 05:08

  人脸识别结果查询界面zoloz.identification.user.web.query

  支付宝返回的imgStr图像字符串不是标准的base64格式.

  图片无法解析.

  因为标准Base64不适合直接在URL中传输,

  因为URL编码器会将标准Base64中的“ /”和“ +”字符更改为“%XX”之类的形式,

  因此,对URL使用了改进的Base64编码,

  如果需要转换为标准base64图像格式,则需要通过以下方法执行转换.

  1. 首先,首先以正确的格式将支付宝返回的base64转换为base64

  public static String safeUrlBase64Decode(final String imgStr ) {

   String base64Str = safeBase64Str.replace('-', '+');<br /> base64Str = base64Str.replace('_', '/');<br /> int mod4 = base64Str.length() % 4;<br /> if (mod4 > 0) {<br /> base64Str = base64Str + "====".substring(mod4);<br /> }<br /> return base64Str;<br />}<br /><br />2. 然后对正确格式的base64图片进行解码<br />

  public static File base64ToFile(String base64) {<br /> if(base64==null||"".equals(base64)) {<br /> return null;<br /> }<br /> byte[] buff= Base64.decode(base64);<br /> File file=null;<br /> FileOutputStream fout=null;<br /> try {<br /> file = File.createTempFile("tmp", null);<br /> fout=new FileOutputStream(file);<br /> fout.write(buff);<br /> } catch (IOException e) {<br /> e.printStackTrace();<br /> }finally {<br /> if(fout!=null) {<br /> try {<br /> fout.close();<br /> } catch (IOException e) {<br /> e.printStackTrace();<br /> }<br /> }<br /> }<br /> return file;<br />}

  3.以上就得到了file 文件,如果需要把file文件转成流<br />

  InputStream fileInputStream = new FileInputStream(file);

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线