在和服务器交互的过程中,有时候我们需要把图片编码成base64字符串传输,记录一下工具类

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Base64; import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException; public class Base64Util {
/**
* 图片转化为base 64字符串
*
* @param imgUrl
* @return
*/
public static String imgEncode(String imgUrl) {
if (EmptyUtil.isNotEmpty(imgUrl)) {
byte[] bytes = new byte[0]; try {
FileInputStream fis = new FileInputStream(imgUrl);
bytes = new byte[fis.available()];
fis.read(bytes);
fis.close(); } catch (IOException e) {
e.printStackTrace();
}
return Base64.encodeToString(bytes, Base64.NO_WRAP); } else {
return "";
}
} /**
* 解码base64字符串
*
* @param imgBase64Str
* @return
*/
public static byte[] decodeImg(String imgBase64Str) {
byte[] bytes = new byte[0];
if (EmptyUtil.isNotEmpty(imgBase64Str)) {
bytes = Base64.decode(imgBase64Str, Base64.DEFAULT);
}
return bytes;
} /**
* bitmap 转化为Base64字符串
*
* @param bitmap
* @return
*/
public static String Bitmap2Base64Str(Bitmap bitmap) {
ByteArrayOutputStream baos = null;
if (EmptyUtil.isNotEmpty(bitmap)) {
try {
baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
baos.flush();
byte[] bitmapBytes = baos.toByteArray();
return Base64.encodeToString(bitmapBytes, Base64.DEFAULT);
} catch (Exception e) {
e.printStackTrace();
}
} else {
return "";
}
return "";
} /**
* byte转化为Bitmap
*
* @param b
* @return
*/
public static Bitmap bytes2Bitmap(byte[] b) {
if (EmptyUtil.isNotEmpty(b)) {
return BitmapFactory.decodeByteArray(b, 0, b.length);
}
return null;
}
}

工具类Base64Util的更多相关文章

  1. Base64Util工具类

    package com.qianmi.weidian.common.util; import java.io.*; /** * This class provides encode/decode fo ...

  2. java 加密工具类(MD5、RSA、AES等加密方式)

    1.加密工具类encryption MD5加密 import org.apache.commons.codec.digest.DigestUtils; /** * MD5加密组件 * * @autho ...

  3. Base64加密解密工具类

    使用Apache commons codec类Base64进行加密解密 maven依赖 <dependency> <groupId>commons-codec</grou ...

  4. Java开发工具类集合

    Java开发工具类集合 01.MD5加密工具类 import java.security.MessageDigest; import java.security.NoSuchAlgorithmExce ...

  5. Java中常用的加密方式(附多个工具类)

    一.Java常用加密方式 Base64加密算法(编码方式) MD5加密(消息摘要算法,验证信息完整性) 对称加密算法 非对称加密算法 数字签名算法 数字证书 二.分类按加密算法是否需要key被分为两类 ...

  6. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  7. Android—关于自定义对话框的工具类

    开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...

  8. [转]Java常用工具类集合

    转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...

  9. js常用工具类.

    一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...

随机推荐

  1. Vim 宏实战操作

    宏的概念 什么是宏呢?英文名:macro,代表一串命令的集合. 示例操作文本 SELECT * FROM `edu_ocr_task` WHERE ((`userId`=284871) AND (`u ...

  2. Postsql 修改字段长度和类型

    以后更改字段长度会重写表,如果表比较大,那么表会加锁,需要很长时间 通过一种方法通过修改pg_attribute.atttypmod字段修改长度,不需要重写表 查询select * from pg_a ...

  3. python中基本数据类型以及运算符

    python中基本数据类型以及运算符的知识 一.与用户的交互以及python2与python的区别 1.1什么是与用户交互 用户交互就是人往计算机中input(输入数据),计算机print(输出结果) ...

  4. 以太网驱动的流程浅析(二)-Ifconfig的详细代码流程【原创】

    以太网驱动流程浅析(二)-ifconfig的详细代码流程 Author:张昺华 Email:920052390@qq.com Time:2019年3月23日星期六 此文也在我的个人公众号以及<L ...

  5. centos 6.9 升级glibc动态库

    glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc.glibc除了封装linux操作系统所提供的系统服务外,它本身也提供 ...

  6. 学习笔记:Django开发网上教育平台(参考了慕课网的教学视频)

    第一步:进行环境的搭建(用到的IDE:pycharm  ,数据库为mysql.nacicat.编辑语言python3.7.以及自己配置的虚拟环境venvpy37) Django==2.2​ ​ 配置好 ...

  7. 浅谈python之利用pandas和openpyxl读取excel数据

    在自学到接口自动化测试时, 发现要从excel中读取测试用例的数据, 假如我的数据是这样的: 最好是每行数据对应着一条测试用例, 为方便取值, 我选择使用pandas库, 先安装 pip instal ...

  8. pytorch 建立模型的几种方法

    利用pytorch来构建网络模型,常用的有如下三种方式 前向传播网络具有如下结构: 卷积层-->Relu层-->池化层-->全连接层-->Relu层 对各Conv2d和Line ...

  9. 使用composer安装Larave提示“Changed current directory to C:/Users/Administrator/AppData/Roaming/Composer”

    解决办法: 根据官方手册执行composer global require "laravel/installer" 显示Changed current directory to C ...

  10. Python程序中的线程操作-守护线程

    目录 一.守护线程 1.1 详细解释 1.2 守护线程例1 1.3 守护线程例2 一.守护线程 无论是进程还是线程,都遵循:守护xx会等待主xx运行完毕后被销毁.需要强调的是:运行完毕并非终止运行. ...