1.创建试用程序时需要16位的签名MD5
解决方法:使用Java8 201版本及以下的jdk创建签名
下载地址:http://www.codebaoku.com/jdk/jdk–oracle–jdk1-8.html#jdk8u201
生成签名代码:keytool –genkeypair –v –keystore D:key.jks –storetype PKCS12 –keyalg RSA –keysize 2048 –validity 9125 –alias your_key_alias –storepass your_keystore_password –keypass your_key_password
“D:key.jks”替换成你存储的位置
“your_keystore_password”和“your_key_password”替换成你自己的密码
查看签名文件查看代码:
keytool –list –v –keystore your_keystore_filename.jks –storepass your_keystore_password
“your_keystore_password”替换成你上面设置的密码
使用教程
implementation files('libs/ocrsdk.aar')
2、引入文件,不能改名字
3.封装的java类文件,可直接使用
public class BaiDuOCR {
private static final String TAG = "BaiDuOCR";
/**
* 自定义license的文件路径和文件名称,以license文件方式初始化
*/
public static void initAccessTokenLicenseFile(Context context) {
OCR.getInstance(context.getApplicationContext()).initAccessToken(new OnResultListener<AccessToken>() {
@Override
public void onResult(AccessToken accessToken) {
String token = accessToken.getAccessToken();
//Log.d(TAG,"百度ocr:"+token);
}
@Override
public void onError(OCRError ocrError) {
ocrError.printStackTrace();
Log.e(TAG, "自定义文件路径licence方式获取token失败"+ocrError.getMessage());
}
}, "aip-ocr.license", context.getApplicationContext());
}
/**
* 标准版文字识别方法
* @param ctx
* @param bitmap
* @param listener
*/
public static void recGeneralBasic(Context ctx, Bitmap bitmap, final OCRServiceListener listener) {
File file = bitmapToFile(bitmap);
GeneralBasicParams param = new GeneralBasicParams();
param.setDetectDirection(true);
param.setImageFile(file);
OCR.getInstance(ctx).recognizeGeneralBasic(param, new OnResultListener<GeneralResult>() {
@Override
public void onResult(GeneralResult result) {
ArrayList<String> values = new ArrayList<>();
for (WordSimple wordSimple : result.getWordList()) {
String word = wordSimple.getWords();
values.add(word);
}
listener.onResult(values);
}
@Override
public void onError(OCRError error) {
listener.onError(error.getMessage());
}
});
}
/**
* 位图转临时文件
* @param bitmap
* @return
*/
public static File bitmapToFile(Bitmap bitmap) {
// 创建一个临时文件
File file = new File(Environment.getExternalStorageDirectory(), "temp_image.jpg");
try {
// 创建输出流
FileOutputStream out = new FileOutputStream(file);
// 将 Bitmap 压缩为 JPEG 格式,可以根据需要修改格式
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
// 关闭输出流
out.flush();
out.close();
return file;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
public interface OCRServiceListener {
void onResult(ArrayList<String> values);
void onError(String result);
}
//在onCreate中初始化
BaiDuOCR.initAccessTokenLicenseFile(this);
//在合适的地方开始调用,不需要在子线程中调用,也可以在子线程中使用
BaiDuOCR.recGeneralBasic(this, bitmap, new OCRServiceListener() {
@Override
public void onResult(ArrayList<String> values) {
}
@Override
public void onError(String result) {
Log.e(TAG, "onError: "+ result);
}
});
原文地址:https://blog.csdn.net/weixin_46139477/article/details/134728964
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_26650.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!