packageorg.fh.util;
importorg.json.JSONObject;
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
.HttpURLConnection;
.URL;
importjava.util.List;
importjava.util.Map;
/**
*说明:获取文字识别token类
*from:
*/
publicclassAuthTextService{
/**
*获取权限token
*@return返回示例:
*{
*"access_token":"24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
*"expires_in":2592000
*}
*/
publicstaticStringgetAuth(){
//官网获取的APIKey更新为你注册的
StringclientId="xxxxx;
//官网获取的SecretKey更新为你注册的
StringclientSecret="xxxxx";
returngetAuth(clientId,clientSecret);
}
/**
*获取API访问token
*该token有一定的有效期,需要自行管理,当失效时需重新获取.
*@paramak-百度云官网获取的APIKey
*@paramsk-百度云官网获取的SecuretKey
*@returnassess_token示例:
*"24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"
*/
publicstaticStringgetAuth(Stringak,Stringsk){
//获取token地址
StringauthHost="/oauth/2.0/token?";
StringgetAccessTokenUrl=authHost
//1.grant_type为固定参数
+"grant_type=client_credentials"
//2.官网获取的APIKey
+"&client_id="+ak
//3.官网获取的SecretKey
+"&client_secret="+sk;
try{
URLrealUrl=newURL(getAccessTokenUrl);
//打开和URL之间的连接
HttpURLConnectionconnection=(HttpURLConnection)realUrl.openConnection();
connection.setRequestMethod("GET");
connection.connect();
//获取所有响应头字段
Map>map=connection.getHeaderFields();
//遍历所有的响应头字段
for(Stringkey:map.keySet()){
System.err.println(key+"--->"+map.get(key));
}
//定义BufferedReader输入流来读取URL的响应
BufferedReaderin=newBufferedReader(newInputStreamReader(connection.getInputStream()));
Stringresult="";
Stringline;
while((line=in.readLine())!=null){
result+=line;
}
/**
*返回结果示例
*/
System.err.println("result:"+result);
JSONObjectjsonObject=newJSONObject(result);
Stringaccess_token=jsonObject.getString("access_token");
returnaccess_token;
}catch(Exceptione){
System.err.printf("获取token失败!");
e.printStackTrace(System.err);
}
returnnull;
}
}
packageorg.fh.util;
.URLEncoder;
importnet.sf.json.JSONArray;
importnet.sf.json.JSONObject;
/**
*说明:手写文字识别
*from:
*/
publicclassHandwriting{
/**
*@paramimgBase64Str
*@paramaccessToken
*@return
*/
publicstaticStringhandwriting(StringimgBase64Str,StringaccessToken){
Stringurl="/rest/2.0/ocr/v1/handwriting";//请求url
try{
StringimgParam=URLEncoder.encode(imgBase64Str,"UTF-8");
Stringparam="image="+imgParam;
Stringresult=HttpUtil.post(url,accessToken,param);
JSONObjectjsonMsg=JSONObject.fromObject(result);
intwords_result_num=Integer.parseInt(jsonMsg.getString("words_result_num"));//识别结果数,表示words_result的元素个数
if(words_result_num>0){
StringBufferstrb=newStringBuffer();
JSONArrayjsonArray=jsonMsg.getJSONArray("words_result");
for(inti=0;i
JSONObjectobject=jsonArray.getJSONObject(i);
Stringwords=object.getString("words");
strb.append(words);
strb.append("\r\n");
}
result=strb.toString();
}else{
result="null";
}
returnresult;
}catch(Exceptione){
e.printStackTrace();
}
returnnull;
}
}
如果觉得《java提取图片中的文字内容_java 提取图片中的文字 手写文字》对你有帮助,请点赞、收藏,并留下你的观点哦!