OpenCV开发之——将图片转化为Base64字符串

一 概述

  • OpenCV将识别到的图片先行保存到本地
  • 将本地图片上传时,转化为Base64字符串,效果更好
  • 图片上传,服务器先要接收,然后再进行处理,耗时更多

二 将图片转换为Base64工具类

2.1 依赖Base64

1
Android\SDK\sources\android-28\android\util\Base64.java

在java项目上测试时,直接copy出来使用

2.2 图片

2.3 工具类(Base64Img2String)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.io.File;
import java.io.FileInputStream;


public class Base64Img2String {

public static String encodeFile(String filePath) {
String imgStr = "";
try {
File imageFile = new File(filePath);
if (!imageFile.exists())
return imgStr;
byte[] bytes = new byte[(int) imageFile.length()];
FileInputStream fileInputStream = new FileInputStream(imageFile);
fileInputStream.read(bytes);
imgStr = Base64.encodeToString(bytes, Base64.DEFAULT);
//imgStr = "data:image/*;charset=utf-8;base64," + imgStr;
} catch (Exception e) {
return imgStr;
}
return imgStr;
}
}

2.4 测试输出

代码

1
2
3
4
5
6
7
8
9
10
public class Main {

public static void main(String[] args) {

File file = new File("D:\\Code\\JavaCode\\Image2String\\images\\cat.jpg");
String image2String = Base64Img2String.encodeFile(file.getAbsolutePath());
System.out.print(image2String);

}
}

输出结果

输出结果处理

  • 输出结果换行了,将结果copy到文档中,将换行符去除

2.5 反向验证(BASE64转图片)

将结果copy到输入框中,点击转图片,查看图片能否正确显示