利用base64编码实现Android和python程序之间的数据流通信
Android转base64的方法如下,已经写入方法,调用即可一下,以下有两种方式,一是根据图片路径将图片转为base64的编码方式,二是根据图片的bitmap将图片转换为base64的编码形式(第二种方法主要参考https://blog.csdn.net/chunlongyuan/article/details/7696070),建议用第二种,用第一种会产生版本兼容的问题,因为AndroidQ以上版本已经更改内存设计,许多方法已经弃用,不适合path来获取路径,当然通过url当作path使用也是可以的。
import android.text.TextUtils;
import android.util.Base64;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class ImageUtils {
/**
* 利用图片路径将图片转换成Base64编码的字符串
*/
public static String imageToBase64(String path){
if(TextUtils.isEmpty(path)){
return null;
}
InputStream is = null;
byte[] data = null;
String result = null;
try{
is = new FileInputStream(path);
//创建一个字符流大小的数组。
data = new byte[is.available()];
//写入数组
is.read(data);
//用默认的编码格式进行编码
result = Base64.encodeToString(data,Base64.NO_CLOSE);
}catch (Exception e){
e.printStackTrace();
}finally {
if(null !=is){
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
/**
* 利用bitmap将图片转换成Base64编码的字符串
*/
public static String bitmapToBase64(Bitmap bitmap) {
String result = null;
ByteArrayOutputStream baos = null;
try {