有道智雲OCR圖片識別文字+返回數據處理技巧(實現語言-按鍵精靈腳本請求識別+java服務端處理數據)


開發者技術變現資源聚集地

https://www.baiydu.com

 

一.開始】、

     1.按鍵精靈android手機腳本

      1.1.截取手機上指定范圍內的圖片,通過api上傳到有道智雲處理后返回識別后的JSON格式數據。

      1.2.代碼

Import "ShanHai.lua" 
//公用該方法 Function wangyiOcrDiscern(imagePath) Dim appKey,img,langType,detectType,imageType,salt,docType,sign,appsecret appsecret="應用程序key" appKey = "應用程序秘鑰'" Dim time_stamp = Time() salt = Encode.Md5(CStr(time_stamp)) img = Replace(ShanHai.ReadFileBase(imagePath), """", "") langType = "zh-en" detectType = "10012" imageType = "1" sign = Encode.Md5(appKey & img & salt & appsecret) Dim goupParameter goupParameter = "img=" & ShanHai.CharToUrl(img) & "&" & "langType=" & ShanHai.CharToUrl(langType) & "&" & "detectType=" & ShanHai.CharToUrl(detectType) & "&" & "imageType=" & ShanHai.CharToUrl(imageType) & "&" & "appKey=" & ShanHai.CharToUrl(appKey) & "&" & "salt=" & ShanHai.CharToUrl(salt) & "&" & "sign=" & ShanHai.CharToUrl(sign) & "&" & "docType=" & ShanHai.CharToUrl(docType) wangyiOcrDiscern = URL.Post("http://openapi.youdao.com/ocrapi", goupParameter) End Function

 

//調用部分代碼
Dir
.Delete ("/storage/emulated/0/ocr.jpg") SnapShot "/storage/emulated/0/ocr.jpg", 166, 215, 597, 1680 ocrJson = wangyiOcrDiscern("/storage/emulated/0/ocr.jpg") ocrJson = UTF8.Mid(ocrJson, charPostion + 8, Len(ocrJson)) ocrJson = "[" & Replace(ocrJson, "}]}}", "")
通過上面的處理得到的ocrJson是一個 JSONArray數組字符串,里面每個成員都為字典JSONObject

  

//將數據傳給java處理,這里為什么不直接給按鍵精靈處理了,首先按鍵處理數據的能力不能和java比,然后是這些數據都是要往服務器里走的。
Function
shareHttpRequest(checkJsonData,appName) Dim parameter,posturl parameter = "checkJson=" & checkJsonData & "&appName=" & appName posturl = "https://www.?.com/?/?" Dim returnData,wetherGoOnRun URL.Post(posturl,parameter) End Function

 

 2.java服務端腳本

     2.1. 接受從按鍵來的數據后,進行一系列的規范處理,然后入數據庫。

     2.2.代碼(由於下面處理數據部分代碼太多就不一一說了,不明白的可以問我)

           

  else if(appName.contains("?"))
                          {
                           shareArray=new JSONArray();
                          int weatherPostNikeNameError=0;
                           for(int i=0;i<serverArray.length();i++)
                           {
                              weatherPostNikeNameError=0;
                               tempValueJsonobject=serverArray.getJSONObject(i);
                               //審核中的id,已遍歷出來
                                 checkId=tempValueJsonobject.getString("weixinNumber");
                                 id=tempValueJsonobject.getString("id");
                                 publisher=tempValueJsonobject.getString("publisher");
                                 
                                 if(parameterArray==null)
                                  {
                                   
                                     parameterArray=new JSONArray(ocrStrValue);
                                     
                               
                                       
                                        for(int t=0;t<10;t++)
                                       {
                                        JSONObject singlexxxx= parameterArray.getJSONObject(0);
                                       String dltTxtxxx=singlexxxx.getString("text").replace(" ", "");
                                        if (!dltTxtxxx.contains("用戶"))
                                        {
                                          parameterArray.remove(0); 
                                           
                                        }
                                        else
                                        {
                                            break;
                                        }
                                       } 
                                   
                                    //最后一個成員移除
                                     for(int k=0;k<10;k++)
                                    {
                                        JSONObject singlexx= parameterArray.getJSONObject(parameterArray.length()-1);
                                       String dltTxt=singlexx.getString("text").replace(" ", "");
                                        if (dltTxt.contains("獎勵"))
                                        {
                                            
                                          break;
                                        }
                                       
                                        else
                                        {
                                           parameterArray.remove(parameterArray.length()-1);
                                        }
                                      
                                    }
                                       
                                    tempSaveObject=new JSONObject();
                                    String checkIdgroup="";
                                    String monery="";
                                    
                                    for(int j=1;j<parameterArray.length();j++)
                                    {
                                          singleObjet=parameterArray.getJSONObject(j-1);
                                          String text=singleObjet.getString("text").replace(" ", "");
                                          
                                          if(j%4!=0)
                                           { 
                                             
                                              if(text.contains("已到賬")&&!text.contains("今日"))
                                              {
                                                monery=text.replace("已到賬", "").replace("元", ""); 
                                              } 
                                              else
                                              {
                                                checkIdgroup=checkIdgroup+text;
                                              }
                                              
                                             
                                            
                                          }
                                          else
                                          {
                                        
                                           
                                          if(text.contains("已到賬")&&!text.contains("今日"))
                                          {
                                            monery=text.replace("已到賬", "").replace("元", "");  
                                          } 
                                             else
                                             {
                                               checkIdgroup=checkIdgroup+text;
                                             }
                                             
                                          tempSaveObject.put("checkId",checkIdgroup );  
                                            tempSaveObject.put("monery", monery);  
                                           
                                            
                                            shareArray.put(tempSaveObject);
                                            
                                             
                                             
                                          tempSaveObject=new JSONObject();
                                           checkIdgroup="";
                                           monery="";
                                         }
                                    
                                     }
                                   
                             
                              }
                                  
                                   
                                    taskTitle=tempValueJsonobject.getString("taskTitle");
                                    addTotalScore="0";
                                   
                              for(int j=0;j<shareArray.length();j++)
                              {
                                  tempSaveObject=shareArray.getJSONObject(j);
                                   shareStr=tempSaveObject.getString("checkId");
                                  
                                   if(shareStr.contains(checkId))
                                   {
                                       
                                      weatherPostNikeNameError=1;
                                       
                                       //數據庫記錄用戶獲得的總共獎勵
                                          double rewardJiangliTotalMonery= Double.valueOf(tempValueJsonobject.getString("rewardJiangliTotalMonery"));
                                      
                                           
                                          //截圖數據顯示當前獎勵的總數
                                           double jieTumonery=Double.valueOf(tempSaveObject.getString("monery"));
                                              
                                            if(rewardJiangliTotalMonery==0 && jieTumonery>=1)
                                            {
                                              addTotalScore=tempValueJsonobject.getString("addTotalScore");
                                       
                                            }  
                                             //截圖顯示的金錢數     //已經獎勵的金錢數量
                                           if(jieTumonery>1 && rewardJiangliTotalMonery>1)
                                           {
                                                 
                                            double  againJiangliMonery=jieTumonery-rewardJiangliTotalMonery;
                                               sharemal =   new   BigDecimal(againJiangliMonery );
                                             againJiangliMonery=  sharemal.setScale(2,   BigDecimal.ROUND_HALF_UP).doubleValue();
                                          
                                              if (againJiangliMonery>=1)
                                              {
                                                  addTotalScore=String.valueOf(againJiangliMonery*0.5);
                                                   
                                              }
                                          }
                                           
                                           if(addTotalScore.contains("."))
                                           {
                                               addTotalScore=addTotalScore+"0"; 
                                           }
                                              
                                       
                                       if(!addTotalScore.equals("0"))//獲得獎勵,給用戶增加金錢
                                       {
                                              userAccount=tempValueJsonobject.getString("account");
                                                mysqlParameter=new String[]{ addTotalScore,addTotalScore,userAccount};
                                                helper.executeUpdate("update  ? set score=score+?,xiajiReturnScore=xiajiReturnScore+? where account=?",mysqlParameter);
                                               
                                                mysqlParameter=new String[]{userAccount};
                                                JSONArray  TempShareArray=helper.executeQueryT("select * from ? where account=?", mysqlParameter);
                                                  singleObjet=TempShareArray.getJSONObject(0);
                                                 String Master=singleObjet.getString("masterAccount");
                                               
                                                if(!Master.equals("666")&& !Master.equals("13983918071"))
                                                {
                                                    
                                                 try{
                                                 mysqlParameter=new String[]{Master};
                                                TempShareArray=helper.executeQueryT("select * from userSheet where account=?", mysqlParameter);
                                                  singleObjet=TempShareArray.getJSONObject(0);
                                                
                                                    masterType=singleObjet.getString("userType");
                                                
                                                 
                                                
                                                  if(masterType.equals("銅牌"))
                                               {
                                                    singleObjet= AAAAYulebaoShareSingleton.getInstance().member_calss_sheet.getJSONObject(0);
                                               }
                                               else  if(masterType.equals("銀牌"))
                                               {
                                                   singleObjet= AAAAYulebaoShareSingleton.getInstance().member_calss_sheet.getJSONObject(1);
                                               }
                                               else//金牌
                                               {
                                                   singleObjet= AAAAYulebaoShareSingleton.getInstance().member_calss_sheet.getJSONObject(2);
                                               } 
                                                   masteraddMonery=singleObjet.getString("fandian");
                                                }catch(Exception e){
                                                    masteraddMonery="0.1";
                                                }
                                                
                                               mysqlParameter=new String[] {masteraddMonery,masteraddMonery,Master};
                                              helper.executeUpdate("update userSheet set score=score+?,messageCount=messageCount+1,xiajiReturnScore=xiajiReturnScore+? where account=? and score>=0", mysqlParameter);    
                                              mysqlParameter=null;
                                              mysqlParameter=new String[]{"下級返點", "好友"+userAccount+"完成"+taskTitle+"任務,你獲得"+masteraddMonery+"元",NowData,Master,"1"};
                                              helper.executeUpdate("insert into ?(title,content,datatime,account,infoType) values (?,?,?,?,?)", mysqlParameter);
                                                }
                                                
                                                mysqlParameter=new String[]{"任務獎勵", taskTitle+"app任務再次完成,獲得"+addTotalScore+"寶幣",NowData,userAccount};
                                                
                                               helper.executeUpdate("insert into ?(title,content,datatime,account) values (?,?,?,?)", mysqlParameter);
                                                    
                                               String  subId;
                                              if(userAccount.length()==11)
                                              {     
                                                  subId=userAccount.substring(0, 3)+"******"+userAccount.substring(9);
                                              }
                                              else if(userAccount.length()==8)
                                               {
                                                   subId=userAccount.substring(0, 3)+"******"+userAccount.substring(6);
                                               }
                                               
                                              else
                                              {
                                                  userAccount="13983918071";
                                                   subId=userAccount.substring(0, 3)+"******"+userAccount.substring(9);
                                              }
                                                 
                                              mysqlParameter=new String[]{"已完成",tempSaveObject.getString("monery"),id,publisher};
                                               helper.executeUpdate("update ? set taskState=?,rewardJiangliTotalMonery=?,taskRecordTimes=taskRecordTimes+1 where id=? and publisher=?",mysqlParameter);
                                             
                                                String   lunboinfo="恭喜"+subId+taskTitle+"任務再次完成,獲得"+addTotalScore+"元";
                                                 JSONArray  singleArray=AAAAYulebaoShareSingleton.getInstance().homePageSessionDictionary.getJSONArray("lunboinfoSheet");
                                                      singleArray.put(lunboinfo);
                                                      if(singleArray.length()>5)
                                                      {
                                                        singleArray.remove(0);
                                                      }
                                                   AAAAYulebaoShareSingleton.getInstance().homePageSessionDictionary.put("lunboinfoSheet", singleArray);
                                                  singleArray=null;
                                                  lunboinfo=null;
                                                 singleObjet=null;masterType=null;
                                       }
                                     
                                      else//審核失敗
                                      {
                                          
                                          mysqlParameter=new String[]{"進行中","任務失敗,?",id};
                                    helper.executeUpdate("update ? set taskState=?,finishTime=? where id=?",mysqlParameter);
                                   
                                      }
                              }
                            }

 

本人做的一款androidApp, 下載量已經有2000多萬,各種當前熱門的網絡手機獎勵紅包全部集成,另外還有熱門電影和淘寶高額優惠券!很適合各類型的用戶。

 

 

 

 

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM