接上一篇 Android识别手写笔迹并透明化处理

由于我们的服务端接口是通过base64接收处理后的图片,因此需要将图片处理成Base64字符串(忽略将图片从文件转化为Bitmap的过程)

* bitmap转为base64 * @param bitmap * @return public static String bitmapToBase64 ( Bitmap bitmap ) { String result = null ; ByteArrayOutputStream baos = null ; try { if ( bitmap != null ) { baos = new ByteArrayOutputStream ( ) ; bitmap . compress ( Bitmap . CompressFormat . PNG , 100 , baos ) ; baos . flush ( ) ; baos . close ( ) ; byte [ ] bitmapBytes = baos . toByteArray ( ) ; result = Base64 . encodeToString ( bitmapBytes , Base64 . DEFAULT ) ; } catch ( IOException e ) { e . printStackTrace ( ) ; } finally { try { if ( baos != null ) { baos . flush ( ) ; baos . close ( ) ; } catch ( IOException e ) { e . printStackTrace ( ) ; return result ;

base64的字符串中每76个字符后面会被添加上一个 \n 符号

我们采用的是 Base64.DEFAULT 的flags进行转码,会造成字符串中有很多 \n 分隔符,原因是由于RFC2045规范每行字符串不能超过76个字符,因此Base64在编码的时候会添加 \n 分隔符,此规范链接 RFC2045规范
在这里插入图片描述
此问题会导致我们给服务端提交base64的时候,该图片在web上无法通过 src='data:image/jpeg;base64,...' 正常展示图片

将flags设置为 Base64.NO_WRAP ,在Android的文档中有说明,设置为这个flag,则返回的字符串将会一个长串(也就是不会换行),这正是我们期望的结果

// 	NO_WRAP
// Encoder flag bit to omit all line terminators (i.e., the output will be on one long line).
result = Base64.encodeToString(bitmapBytes, Base64.NO_WRAP);
                    接上一篇 Android识别手写笔迹并透明化处理由于我们的服务端接口是通过base64接收处理后的图片,因此需要将图片处理成Base64字符串(忽略将图片从文件转化为Bitmap的过程)/**     * bitmap转为base64     * @param bitmap     * @return     */    public static String bitmapToBase64(Bitmap bitmap) {        String result = null;    
				
公司要求图片上传base64位并换为字符串,多张图片用逗号隔开,无奈只能自己二次封装element的上传组件 主要修改这几个方面 1.换多张图片base64, 2.去除el-upload动画, 3.支持传递最多可上传数量达到数量隐藏上传按钮 这是二次封装组件的子组件代码 pic为处理好后传递给父组件的base64代码 limit为接受父组件传递进来的图片最多上传张数,达到最多数量隐藏上传按钮,传递0或者不传递这个参数为无限制 <template>
再下限于水平有限,多次尝试后端返回图片到前端,没有找到一种最好的方法。 1.可以用本地工程存放图片。每次返回图片在本地工程的路径就可以。 有点:简单易用,可以返回多张图片。 缺点:本地工程越来越臃肿。 2.用mongoDB存放,每次通过图片流返回前端。(这里的convertGridFSFile2Resource是针对springboot2.x以上版本,前面的博客有专门讲) @RequestMapp...
Base64OutputStream类的源码 public class Base64OutputStream extends BaseNCodecOutputStream {     public Base64OutputStream(OutputStream out) {         this(out, true);     public Base64OutputStream(O...
一.问题由来问题如题,这种情况在使用android 和 eclipse都碰到.1. 环境介绍android 使用 import android.util.Base64.*;eclipse 使用 import sun.misc.BASE64Encoder; import sun.misc.BASE64Decoder;2. 问题详情使用Base64编码图片字符串,发送给服务器,服务器收到的
需求是将图片换为Base64编码,再存入json发给相应接口,但接口返回的结果都为错误,仔细排查后发现图片换为Base64编码末尾自动添加了换行符的问题,以及有些空格出现。 先前使用的换方法: BASE64Encoder encoder = new BASE64Encoder(); encoder.encode(image); 将其改为: Base64.getEncoder().encodeToString(image) 这里需要注意的是导入的包为 java.util.Base64