Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to invoke web service
#1
I tried a lot of OCR software and tools, for example, Microsoft's MODI, Google's Tesseract, the recognition effect is not accurate

Later, I found Baidu's online OCR service, the recognition effect is very good, in addition, it can identify 50,000 times a day for free, which is completely enough for individual users.

But I don't know how to call a web service in QM. The format of the web service call is as follows (Sample config files in the attachment):
——————————————————————————————————————————————

request URL:
https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic


method:
post
——————————————————————————————————————————————
headers:
Content-Type:application/x-www-form-urlencoded
——————————————————————————————————————————————
Body:
access_token:  free registration
image: Picture of BASE64 format (delete the prefix  data:image/png;base64,  )
language_type:CHN_ENG (Can see help doc)
probability:true (Can see help doc)
detect_direction:true (Can see help doc)
——————————————————————————————————————————————
I recorded a demo that invoke web service in the software postman
demo link : https://ibb.co/RzmxyfQ
Any suggestions are welcome, thanks in advance


Attached Files Image(s)
   

.txt   Base64.txt (Size: 5.84 KB / Downloads: 28)
.txt   OCR Config.txt (Size: 315 bytes / Downloads: 35)
#2
I very hope someone can finish it because Baidu has too many free services, Smile

such as: Image recognition, speech recognition, text recognition, etc.

These features are Very Friendly to personal
#3
I found someone wrote the VBS code.
 
Code:
Copy      Help
 
Rem CODE BY OLDLIU
Option Explicit
Randomize

Dim ExitCode
ExitCode = Main()
WSH.Quit ExitCode

Function Main()
    Const OCR_URL = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic"
    If WSH.Arguments.Count = 3 Then
        Dim fso,APIKey,SecretKey,Start_Time
        Start_Time = Timer
        Set fso = CreateObject("Scripting.FileSystemObject")
        APIKey = WSH.Arguments(0)
        SecretKey = WSH.Arguments(1)
        If fso.FileExists(WSH.Arguments(2)) Then    
            Dim ImageFilePath,Token
            ImageFilePath = fso.GetFile(WSH.Arguments(2)).Path 'Processing relative paths
            Token = GetToken(APIKey,SecretKey)
            If Token <> "ERROR" Then
                With CreateObject("HTMLFILE")
                    .ParentWindow.execScript _
                    "var ImageBase64String_URLEnc = encodeURIComponent('" & FileBase64Enc(ImageFilePath) & "');"
                    If Len(.ParentWindow.ImageBase64String_URLEnc) <= 4*1024*1024 Then
                        .ParentWindow.execScript _
                        "var JSON = " & _
                        HTTP_POST( _
                        OCR_URL & "?access_token=" & Token, _
                        "image="& .ParentWindow.ImageBase64String_URLEnc & _
                        "&language_type=CHN_ENG" & _
                        "&detect_direction=false" & _
                        "&detect_language=false" _
                        )
                        On Error Resume Next
                        Dim Error_Code
                        Error_Code = .ParentWindow.JSON.error_code
                        If Error_Code = Empty Then
                            On Error Goto 0
                            Dim i
                            For i = 0 To .ParentWindow.JSON.words_result_num - 1
                                WSH.Echo Eval(".ParentWindow.JSON.words_result.[" & i & "].words")
                            Next
                            Main = 0
                            WSH.StdErr.WriteLine "Success, time " & Timer - Start_Time & " sec。"
                        Else
                            On Error Goto 0
                            Main = 5
                            WSH.StdErr.WriteLine "Error! Code:" & Error_Code & ", msg:" & .ParentWindow.JSON.error_msg
                        End If
                    Else
                        Main = 4
                        WSH.StdErr.WriteLine "The file is too large."
                    End If
                End With
            Else
                Main = 3 
                WSH.StdErr.WriteLine "The APIKey or SecretKey is incorrect."
            End If
        Else
            Main = 2 
            WSH.StdErr.WriteLine "file not found."
        End If
    Else
        Main = 1
        WSH.StdErr.WriteLine "Image Cloud OCR Tool (Baidu Cloud Edition, support Chinese and English mixed)" & vbNewLine & vbNewLine & _
        "usage:" & vbNewLine & _
        "CSCRIPT -NOLOGO OCRImage.VBS        <APIKey>        <SecretKey>        <ImageFilePath>" & vbNewLine & vbNewLine & _
        "APIKey                        The APIKey that comes with the Baidu Cloud Artificial Intelligence app you created." & vbNewLine & _
        "SecretKey                The SecretKey that comes with the Baidu Cloud Artificial Intelligence app you created." & vbNewLine & _
        "ImageFilePath                Path to image file (support relative path)"& vbNewLine & vbNewLine & _
        "Baidu Cloud Artificial Intelligence OCR:        https://cloud.baidu.com/product/ocr" & vbNewLine & vbNewLine & _
        "Output information:" & vbNewLine & _
        "Handle 1                        OCR results" & vbNewLine & _
        "Handle 2                        Help, error message, execution time" & vbNewLine & vbNewLine & _
        "note:" & vbNewLine & _
        "First, does not support XP system." & vbNewLine & _
        "Second, the picture size must be less than 3M, it is recommended to be less than 1M. Otherwise it will be very slow (VBS pot, next time Vb.Net), and the recognition effect is very poor or even unrecognizable"
    End If
End Function


Function HTTP_POST(ByVal Address,ByVal Args)
    With CreateObject("MSXML2.XMLHTTP")
        .Open "POST",Address, False
        .SetRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
        .Send Args
        HTTP_POST = .ResponseText
    End With
End Function

Function GetToken(ByVal APIKey,ByVal SecretKey)
    Const GET_TOKEN_URL = "https://aip.baidubce.com/oauth/2.0/token"
    On Error Resume Next
    GetToken = _
    Split( _
    HTTP_POST( _
    GET_TOKEN_URL, _
    "grant_type=client_credentials" & _
    "&client_id="&APIKey & _
    "&client_secret=" & SecretKey _
    ) _
    ,"""")(3)
    If Err.Number <> 0 Then GetToken = "ERROR"
    On Error Goto 0
End Function

Function FileBase64Enc(ByVal strFilePath)
    Dim fso,WshShell,TmpFilePath,oReadFile
    Const ForReading = 1
    Const MyBirthDay = 1228
    Const WINDOW_HIDE = 0
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set WshShell = CreateObject("Wscript.Shell")
    TmpFilePath = fso.GetSpecialFolder(2) & "\" & Fix(Rnd * MyBirthDay) & ".TMP"
    WshShell.Run "Certutil.EXE -ENCODE """ & strFilePath & """ """ & TmpFilePath & """" ,WINDOW_HIDE ,True
    Set oReadFile = fso.OpenTextFile(TmpFilePath,ForReading)
    oReadFile.ReadLine 'Skip the first line”-----BEGIN CERTIFICATE-----“Sign
    Dim Str
    While Str <> "-----END CERTIFICATE-----"
        FileBase64Enc = FileBase64Enc & Str
        Str = oReadFile.ReadLine
    Wend
    oReadFile.Close
    fso.DeleteFile TmpFilePath
End Function
#4
before you press send on postman you can click on code its in orange from there you can get code snippets that you will better understand.
here is how you set 1 headers in qm
typelib WinHttp {662901FC-6951-4854-9EB2-D9A2570F2B2E} 5.1
WinHttp.WinHttpRequest xhrt._create
xhrt.Open("POST" F"https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic")

xhrt.setRequestHeader("content-type", "application/x-www-form-urlencoded");
#5
Thank you for your reminder, it has been successful
I have two problems now.
1. How to convert the image to base64 format, I did not find the relevant function
I use Online transcoding  https://tool.css-js.com/base64.html
________________________________________________________________________________
Body code format:
access_token:24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329
image: image need Base64 format, delete the prefix data:image/png;base64, 
language_type:CHN_ENG
probability:true
detect_direction:true
________________________________________________________________________________

2. I can't get the result using the Ixml function.



Macro Macro2
Code:
Copy      Help
typelib WinHttp {662901FC-6951-4854-9EB2-D9A2570F2B2E} 5.1
WinHttp.WinHttpRequest r._create
r.Open("POST" F"https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic")
r.setRequestHeader("content-type", "application/x-www-form-urlencoded")
;out r.StatusText
;out r.Status

str body=
F
;access_token=24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329&image=iVBORw0KGgoAAAANSUhEUgAAA18AAABeCAYAAADc8q5RAAARPUlEQVR4nO3diZXjKhaAYWqSsTuDl4VVGXQWdgiuLDqDcmXRGViOxqMNrSwXhJCr%2Bv%2FOqTNv2jYChICrBb09KwoAAAAAsKn%2F7Z0BAAAAAPgXEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQwb8RfJUXdXx7U2%2FFbe%2BcANjLrVBvdT%2Bg%2F%2BgPBtRNtPJybOqMKovX1uFRXcq9c7K9rcr63dLFxujTX9rK4KtUl%2BPbdAfXf8eLSnuc3lTRpF2o%2FZuPzouvnKPvvUS%2BAe2VjqdM6oHo%2FWvvXLyml6gb3SZtkzzf53osGrfpf7CdRxvGK%2BccTZ%2FInOyH8VgXMxco1Z%2FbQ6lDoX4f6%2BbY%2FvYome3rCWaf6Vff59OyNv%2FSBe%2B%2BP3d9LNMdmPaPNJhypTt8pzn2hPt6OWfcal9Z5qebzFFfzEv06XCJDr7aDuOX%2BngYPnx8qF%2FSzvM7q8p5sfUatz%2BKpv%2BN%2FKSroz%2BpLElUg%2FClPhoP6nx%2Fquez%2B6sGKOrKUTdZVZO7U%2F2%2FD1Waho2%2BP7V8Xv5R9RxRnX6r3Dn%2FGaoJ8P1ctQKlvt5tk%2BGqrRQfqqnmz1JdrZPxkW4u4A7o2n13KH6rOsni2ubjUe1z9wxi1Havifb61v3BrKxbp9vO094Nc5GH%2BvglKKcgv%2BWlMM8Dl1%2Bs6tY0Z%2FxS76mvrDVBuWV%2BWmva5U%2B9mrdjn%2F7Pj6cBnhHu58Oz%2Fmnzd%2FpcfP55Uv3nh2rv7%2B5%2Bfh4seQ33%2BTzVaR0ObZqH83NZwvvzfBh9R52eKbaMDSVtIzv7SWVJojtmTfXxz9eVo26yZ%2BVkHVN8Y47%2B7R7jjc7bK1ThWn09O%2FbBso67NmQY54a5gH0MbL8z%2FrwbP311qo9d4xgcaeP%2BYFlWb4a6ujg8XU3bmK4ui2GfDcdTRLqztPs%2Fz37o28Lse7Z%2Fj%2BYo92ij3rJ%2FXzv26f%2F8eCoXceXrpi7d6YSqfo3RdHGr%2Fv2zOY2pHh%2BXF738v1ahrlWvqB439Wd%2B9uR2ac64nK7XtGe3AIQr%2F%2F7sW0zWeKW6OR6bKx7LPOlbn07qdDB9Xl8Ya8%2F0FvZ7oyBwvN7Uub38Nb1aVV5UUQ9qh7O6iS55tYrbvU1PfVX70PSNavysd93kiuVR%2FS6aH6kv84%2FaLFWf1TOR5FeRNmMqq%2B8n7Vyimkw4rjRa0i3Lpn6qiZoqZz8%2BXkv16brSHJtfm6r9NBdj1El9ltN5Ud9GTHOpmE3pdnG%2BL8o92qh6PoVXb7%2BbV%2BrTYRcarbnOjM3pMxqTsw%2BeyLj9zfyMhL7aZDkzos%2BYjv7E2xydJZEF66O8WNIdzhbZzgjqf1%2F%2BOc%2Fc%2Bso5q6fJ2eJ5nRrSspfflN%2BcV%2FMC6yu0jRnqwpq%2BtN7GZ%2BIXZwlHdef6LKb8orKEH0%2FGMs7qeXzF29uWrQLamiSf1vqo0vTWle%2BM%2FvLM6fLqQOixHnAMm9IOOXvsqpvQeg7Ou4ntLH%2Bbbl1fbZrzz%2FXvLP3svE7WtNtFXZyeZ9eVL1HdpWhn43RW9tN9n6R%2F67v6Ys%2F%2FUAZ3%2FSw%2BW%2BRhkUlnWzEfB576Cek7xcezoKxWsqte1nQdV5Lbjz3jvjS%2FkiuQnrzYr6qGW53WLmN8n2iePl28ncRzjwTz%2F3Rjory%2F7MeIhFf0goMv7wE7%2FfIyw4mDr%2FnAaTxgbNv0dvDGHE7ysshvl6Z78mZv0LYdLCrn%2FJbIyd%2BQR1dai207Dqikt3s4BdbXRsFXsnrr2sTJlt6iXgPKvzL4Ciqj6dYTQVu2Cmhr4nyuCr48%2FZFaDkDL74ce67JjeDoAGcq2qr6H3we1B2He3Vlqvz9JejwJNE0Irce7J%2FgKbLfOupjnKbDuVrezxP30%2BCSrfzLrCr7ctxDab8Pz3HponfBb9rmkflYGX77%2BLviWQ0%2FA4k93qEPxsRGTX0Hw5W1DKW8b7vdj%2BImH%2Fcb4fH162HYSzz1Wzf8TjomB%2FeULBF%2FCMzH91w0HZcrga1SBpoHPGXxFBV6GvBjPouo03WcEF%2Fo82a9SOcs5OVAs%2B6hPa%2Fa58QqgYwCsv58t%2BLKw1VdMG%2FPdqxxUb8%2FpwT2dKQ4D4uIzvf8Cj6%2FQsniPJ2EZJ5NYW%2BcmPb4C2lpsPiOe%2BTI%2BzzPet5M61M96Co4L276THMPW30ac9XWVP7SeJXn3MUzC2jLN%2BlTDoG99FskZfAnbra0unr42Iqu7de1si3561k8507CNc6M0TL%2BX9rmO58%2BsVxFN9SWpn9hnVhzHZFy6wrmWN93Zfqzr4Cy4UhWS34TBV5rJ7bLMoj5xzzE%2BV5%2Beajuxc4818%2F9kY2J4f0nwJe1QbfnQX4wOvEx5Gd%2FyMtweM%2FluwHaW5Q8op%2FhslucWmSFqDdvfO4gJpOJ%2FI623p2NC6O7kQh%2FejwokLe0kuIxRx7KNvK0lzWfEYNFsv6q7z8UtcGEPOkfdYm39XZ9heQDYfN1e%2FuB6FuRdnJ95%2F2r9%2F676kN12uCzaMj1XXZiO2RRtVN7ONuqnfQHFkFP32XHL7823kJrStQV1jlu0jXMFQf2sWDDAdVz6y7pITDTZk9fhoZpUzvaLN1haMc8zppcr%2BJpuU3Ql5LnvGJ%2B3T0%2Bznai5xxaPHVl%2F12%2FUcrJq33ntN37JcqnK9mlS9TvkadB6Kcxf9XK5J%2FX5vCVYlviortf6ydV6udR6SdeAh777d6YMf8tXM0SW07xB9bd5EvNQP9u%2BtHjg%2Faj%2Ba77XLUsb%2BW4M63tMQpcjFdXXFkLrze34X%2BRTvpuWP20Zw0nbWuZ8Hv9rHw7v02sfQq8f8i%2BqA%2FJQ5femnxLvlkM%2FmQ7UZPtOl7%2Brp8Vx1S2v%2FChXln%2Bn9nCs6rV5%2BF7nv%2B3%2FhkUVusUY%2BofzdT51%2B9lCt%2FCAuA%2BOqLtV7SxNPz0vg15Wvkm3iEzz9GlZ2EDy%2Fij9%2BoHZYh39IhTShSA2qJ%2Bg41lS1un3ZUvo%2B9Kt3%2B9VzUkOZ3Wv9kFZDsuON4ttNMutm14rEJrf11QvKqLL2%2Fx1i8C15svb7znG5%2B7TI7az29xLIrRcW%2FSX4QKDryHT9hVyRvRqO3pg2VsfeKm074Mprt2KTsqzKpHWvfRQ5yUbHchZJip6P40Ovnrlyr7P6t7ZEvaSxhT2qi8tvN7SylH%2BvcsobWu589lNAPVkvxl8uxMsXaCg30dUNiPAfPBOve90%2Bbe2V3vQ2%2Bsm3N1kZzyZaf%2B7G4Ne8v1eMXW3rp2l7qf1u5vqFeP6ibr3ZFl9QvM5nfDa3i0kfN9V0UZfk1UP25UtLSc5bOkkq5%2BI4zn03V6iFQ796ZaXSxukG1Zdruvj3i5rqd7n%2B3Wrd5EJHIyRTyLNCoej4LOefPcvat1z%2FMvdp4fYe%2B4lEV6uV5jXBl%2F5Oh79S8BqMZ3kph4P9Tid%2B6V0070ITl%2F9kr3s8Vbolx4uB6t7H8Vt4aja3afPFMzoszqH42wpWNPZo%2FqsgezN9IszUIEv%2FduvvrS4ekslT%2Fn3LaPmb2v589n2ee1kv1nGuD8jPL0KU5bLs8Xp950u%2F%2BwFmou%2FtVf192sPesJdBxntstGzK07VpLC516Aeg7oTfJtO2oLF1d2adlZb208P%2BZsuK1%2FcPlV7Aerd%2FbLkkE00%2B1Vwl0i3r9XXpZsUhV6FHCWVoH5ijmdxWdtvi18c7U63u3plu5Kj6pi%2BMF7NCcuvjD558rCctS%2BNB8p29Iu8x3f57Df%2B5e7T5dvZf%2B4lEVd%2FyfrLSOHB1%2FUq64irifW7q5NcfbuKrnDb%2B0MM6lsgbld1Le%2FpAzDxeyOGwUN222NEOR1pua5c6vdjOK9UNuX0vbslpdD6GolpY8bfJKi3aLnKv2cZLYxtbaN8OupKT1LKv7d2QjNK%2B9jfEnZp99Nkuyv2ndVQ%2Fv42tE3s2B66CXd9pedPE2jMJzxdn1jts0uW93uF9sFxdRffzgyi%2B2l9u2E1kbnpKybVZKSbnHy9p5iYdO8KFd3Wpm897Np7d8vl6iudvvox9gcxx3NIWZX8qpc3XUE%2FYbwzKTC%2FUvq2va8%2F9tscEx3Ht0Jw9WJR9j3Hv%2Fx9umw7G849kt6unqD%2Bss9rKzEPik0eZPQsyWtdjWjxmWtFkw1WOxwtZBG2vGnIQ%2BWmB4YdC2jYVtsJXe1Q8r4N0Tba9Oz7MMcDixH1taaNha4Sads3rqVzBQ%2Fqilac9Jbf814e6WqHtjImXXAjoK0lzaekLU9Xr5omI%2FsseN%2BJjmFH%2B0rwcHZ4f5RgwY02U5M6dR0nyvLwvDM%2FEe122N50W%2BN8iFY7dPTl8e0sXT9tfDfn7DPrsuWBy2HLF%2F4bFnQ4e%2FsU0z4PqR9XncWP3bKyBiwEIEnX1U94xq2gdS8k7%2Fl62ttP%2F%2B%2BJVpkb5p%2B%2BsXzlMZtsjH%2B695X%2BPGmfLtnOhnOPFPP%2F6HKF95cvsNrhwL2SjDuo8f8203u%2BHO9RsVsbfMWUX1hOYd7k77KIf6dJSjH1laqO177nK0XHnL4sid%2FzlTD4km47fT7dfdfwneUEc9g%2FKdqh7Bj2pptioLbUjf34TxV8OYKaIWOCfihd8OVf0W%2Fde76WvwlpZ4n6aV2ngpeSmidOsuAr%2BH1XMcveG4KvNX2L7g9Cj%2BeQso7freYjTdf3bjpz2QPe7RXS%2Fzh%2FYx4n1gVf7j%2FnCQbJcZQy%2BHrm69NDtrPFPGr%2FMXHFe3YTznmjVztsn%2BO5K%2BNtn83qOk9VWq6b179d3C%2FarIo0eghOqLlv0%2FCj%2BkFh%2FyNFhbo92%2FvZHx%2B%2FEj4D5tbU3SLP7T21tvto15VTllbVrmbPYQ314%2F%2FudmLqK6aNFTdLe%2B4%2Fl9ZbWnHtxV0Wm73KGNrWUuZTUlf6OSTT7U79sxOGW3Vi9p1E2%2F%2Ba66tp5%2BXyIfsYu7X5%2Fql3yzMr%2BlkgleuZ4rp9zttJ%2B4xBaJ%2Ftqru4dpagn64Xo3rvnjW62drO%2BPbD2AfTu1uZgm4b7J5564QvBBHat9j7g7DjOaSs3e1%2BoufG5ek2bfDePd800T0fMyl7zL4JcLyq0jhnrOtP8siGjH6WxzqXdMxP9xv%2F8vXpIdvZYu6Rcv4%2FT1dWrteY177VEVi65EZLmyZqKAAA4AeoJjZvVZBXT3IyzXH2s1VZv1u6ABYSv%2BerezD58aGKfOuQAwCAl9at5Hc4K8GiwN%2FcVmX9bukCMEkefLVLrne38e3yTigAAPBSdnx%2FVHZblfW7pQvAKPFth53u8vWgvr843T29AAAAAPDdbBN8AQAAAAAmEt92CAAAAAAwIfgCAAAAgAwIvgAAAAAgA4IvAAAAAMiA4AsAAAAAMiD4AgAAAIAMCL4AAAAAIAOCLwAAAADIgOALAAAAADIg%2BAIAAACADAi%2BAAAAACADgi8AAAAAyIDgCwAAAAAyIPgCAAAAgAwIvgAAAAAgA4IvAAAAAMiA4AsAAAAAMiD4AgAAAIAMCL4AAAAAIAOCLwAAAADIgOALAAAAADL4P%2BNTHNIY7Ho%2FAAAAAElFTkSuQmCC&language_type=CHN_ENG&probability=true&detect_direction=true
r.Send(body)
ARRAY(byte) a=r.ResponseBody
str s.fromn(&a[0] a.len)
out s

IXml x=JsonToXml(s 0)
IXmlNode ro=x.RootElement

;out ro.Child("words_result_num").Value
;out ro.Child("direction").Value

ARRAY(IXmlNode) a1; ro.Path("words_result/*" a1)
int i; for(i 0 a1.len) out a1[i].Value

I found the code for C# to base64.  Is there an easier way?

 
Code:
Copy      Help
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConvertImgToBase64
{
   class Program
   {
      static void Main(string[] args)
      {
         FileInfo file = new FileInfo("1.png");
         var stream = file.OpenRead();
         byte[] buffer = new byte[file.Length];
         //Read picture byte stream
         stream.Read(buffer, 0, Convert.ToInt32(file.Length));
         //Save the base64 string to the base64.txt file
         StreamWriter sw = new StreamWriter("base64.txt",false, Encoding.UTF8);
         //Convert byte stream to base64 string
         sw.Write(Convert.ToBase64String(buffer));
         sw.Close();
         Console.WriteLine("Convert successful!");
         Console.Read();
      }
   }
}

#6
Use the following code, Successful output  Tongue

But I feel very troublesome,Someone can provide a QM function? I didn't find any relevant information in the entire forum.



Macro IMG2Base64
Code:
Copy      Help
CsScript x
x.AddCode("")

str IMG64 = x.Call("ImgToBase64String" "c:\OCR test.png")
out IMG64

#ret
;using System;
;using System.Collections.Generic;
;using System.Drawing;
;using System.IO;
;using System.Linq;
;using System.Web;
;using System.Drawing.Imaging;

;namespace Html5Image.Tools
;{
;;;;;public class ImageTool
;;;;;{
;;;;;;;;;//Image to base64 encoded text
;;;;;;;;;public static string ImgToBase64String(string Imagefilename)
;;;;;;;;;{
;;;;;;;;;;;;;Bitmap bmp = new Bitmap(Imagefilename);
;;;;;;;;;;;;;//this.pictureBox1.Image = bmp;
;;;;;;;;;;;;;//FileStream fs = new FileStream(Imagefilename + ".txt", FileMode.Create);
;;;;;;;;;;;;;//StreamWriter sw = new StreamWriter(fs);
;
;;;;;;;;;;;;;MemoryStream ms = new MemoryStream();
;;;;;;;;;;;;;bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
;;;;;;;;;;;;;byte[] arr = new byte[ms.Length];
;;;;;;;;;;;;;ms.Position = 0;
;;;;;;;;;;;;;ms.Read(arr, 0, (int)ms.Length);
;;;;;;;;;;;;;ms.Close();
;;;;;;;;;;;;;String strbaser64 = Convert.ToBase64String(arr);
;
;;;;;;;;;;;;;return strbaser64;
;;;;;;;;;}
;
;;;;;;;;;public static Bitmap Base64StringToImage(string base64Img)
;;;;;;;;;{
;;;;;;;;;;;;;byte[] bytes = Convert.FromBase64String(base64Img);
;;;;;;;;;;;;;MemoryStream ms = new MemoryStream();
;;;;;;;;;;;;;ms.Write(bytes, 0, bytes.Length);
;;;;;;;;;;;;;Bitmap bmp = new Bitmap(ms);
;
;;;;;;;;;;;;;return bmp;
;;;;;;;;;}
;
;;;;;;;;;/// <summary>
;;;;;;;;;/// save Picture
;;;;;;;;;/// </summary>
;;;;;;;;;/// <param name="base64Img"></param>
;;;;;;;;;/// <param name="imgPath"></param>
;;;;;;;;;/// <param name="imgFormat">EX: System.Drawing.Imaging.Jpeg </param>
;;;;;;;;;public static void SaveFile(string base64Img, string imgPath, ImageFormat imgFormat )
;;;;;;;;;{
;;;;;;;;;;;;;string dir = Path.GetDirectoryName(imgPath);
;;;;;;;;;;;;;if (!Directory.Exists(dir))
;;;;;;;;;;;;;{
;;;;;;;;;;;;;;;;;Directory.CreateDirectory(dir);
;;;;;;;;;;;;;}
;;;;;;;;;;;;;var bitmap = Base64StringToImage(base64Img);
;;;;;;;;;;;;;bitmap.Save(imgPath, imgFormat);
;;;;;;;;;}
;;;;;}
;}
#7
much simpler way

Code:
Copy      Help
_s.getfile("$desktop$\1.png");; change to file location
_s.encrypt(4)
out _s
#8
Thank you, why is the line width fixed?

Invalid setting parameter

_s.getfile("$desktop$\1.png");; change to file location
_s.encrypt(4 0 0 2)
out _s


Attached Files Image(s)
   
#9
not sure but it should work just fine. will still need to prepend and append 
just and example 

Code:
Copy      Help
str ss.getfile("$desktop$\newatwindow.JPG");; change to file location
_s.encrypt(4 ss "" 2)
_s -"access_token=24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329&image="
_s +"&language_type=CHN_ENG&probability=true&detect_direction=true"
out _s

try code above now
#10
No output Huh

Macro Macro3
Code:
Copy      Help
_s.getfile("$desktop$\1.png");; change to file location
_s.encrypt(4 "" "" 2)
mes _s
#11
wrong code look above at posted code
#12
success!!!

Macro Macro3
Code:
Copy      Help
str ss.getfile("$desktop$\1.png");; change to file location
_s.encrypt(4 ss "" 2)
out _s

I can't get the result, why?  Huh
I want to get the value of the array (words_result) and element (words)


Macro Macro4
Code:
Copy      Help
str s="{''log_id'': 3615722016662107394, ''direction'': 0, ''words_result_num'': 1, ''words_result'': [{''probability'': {''variance'': 0.002108, ''average'': 0.954701, ''min'': 0.838457}, ''words'': ''Quick Macros-automation software for Windows XP/Vista/7/8/10. Some features''}]}"

IXml x=JsonToXml(s 1)
IXmlNode ro=x.RootElement

;out ro.Child("words_result_num").Value
;out ro.Child("direction").Value

ARRAY(IXmlNode) a1; ro.Path("words_result/*" a1)
int i; for(i 0 a1.len) out a1[i].Value
#13
Code:
Copy      Help
IXml x=JsonToXml(s 1)
IXmlNode ro=x.Path("root/words_result/item/words")
str v1=ro.Value
out v1
#14
How get the value of the array (words_result)?
#15
Code:
Copy      Help
str s="{''log_id'': 3615722016662107394, ''direction'': 0, ''words_result_num'': 1, ''words_result'': [{''probability'': {''variance'': 0.002108, ''average'': 0.954701, ''min'': 0.838457}, ''words'': ''Quick Macros-automation software for Windows XP/Vista/7/8/10. Some features''}]}"

IXml x=JsonToXml(s)
int i
ARRAY(IXmlNode)
x.Path("root/words_result").GetAll(0 a)
for i 0 a.len
,out "%s %s" a[i].Name a[i].Value
#16
Using QM's base64 function, the body output results are inconsistent. Huh



Macro Q1
Code:
Copy      Help
str body=
F
;access_token=24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329&image=iVBORw0KGgoAAAANSUhEUgAAA18AAABeCAYAAADc8q5RAAARPUlEQVR4nO3diZXjKhaAYWqSsTuDl4VVGXQWdgiuLDqDcmXRGViOxqMNrSwXhJCr%2Bv%2FOqTNv2jYChICrBb09KwoAAAAAsKn%2F7Z0BAAAAAPgXEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQwb8RfJUXdXx7U2%2FFbe%2BcANjLrVBvdT%2Bg%2F%2BgPBtRNtPJybOqMKovX1uFRXcq9c7K9rcr63dLFxujTX9rK4KtUl%2BPbdAfXf8eLSnuc3lTRpF2o%2FZuPzouvnKPvvUS%2BAe2VjqdM6oHo%2FWvvXLyml6gb3SZtkzzf53osGrfpf7CdRxvGK%2BccTZ%2FInOyH8VgXMxco1Z%2FbQ6lDoX4f6%2BbY%2FvYome3rCWaf6Vff59OyNv%2FSBe%2B%2BP3d9LNMdmPaPNJhypTt8pzn2hPt6OWfcal9Z5qebzFFfzEv06XCJDr7aDuOX%2BngYPnx8qF%2FSzvM7q8p5sfUatz%2BKpv%2BN%2FKSroz%2BpLElUg%2FClPhoP6nx%2Fquez%2B6sGKOrKUTdZVZO7U%2F2%2FD1Waho2%2BP7V8Xv5R9RxRnX6r3Dn%2FGaoJ8P1ctQKlvt5tk%2BGqrRQfqqnmz1JdrZPxkW4u4A7o2n13KH6rOsni2ubjUe1z9wxi1Havifb61v3BrKxbp9vO094Nc5GH%2BvglKKcgv%2BWlMM8Dl1%2Bs6tY0Z%2FxS76mvrDVBuWV%2BWmva5U%2B9mrdjn%2F7Pj6cBnhHu58Oz%2Fmnzd%2FpcfP55Uv3nh2rv7%2B5%2Bfh4seQ33%2BTzVaR0ObZqH83NZwvvzfBh9R52eKbaMDSVtIzv7SWVJojtmTfXxz9eVo26yZ%2BVkHVN8Y47%2B7R7jjc7bK1ThWn09O%2FbBso67NmQY54a5gH0MbL8z%2FrwbP311qo9d4xgcaeP%2BYFlWb4a6ujg8XU3bmK4ui2GfDcdTRLqztPs%2Fz37o28Lse7Z%2Fj%2BYo92ij3rJ%2FXzv26f%2F8eCoXceXrpi7d6YSqfo3RdHGr%2Fv2zOY2pHh%2BXF738v1ahrlWvqB439Wd%2B9uR2ac64nK7XtGe3AIQr%2F%2F7sW0zWeKW6OR6bKx7LPOlbn07qdDB9Xl8Ya8%2F0FvZ7oyBwvN7Uub38Nb1aVV5UUQ9qh7O6iS55tYrbvU1PfVX70PSNavysd93kiuVR%2FS6aH6kv84%2FaLFWf1TOR5FeRNmMqq%2B8n7Vyimkw4rjRa0i3Lpn6qiZoqZz8%2BXkv16brSHJtfm6r9NBdj1El9ltN5Ud9GTHOpmE3pdnG%2BL8o92qh6PoVXb7%2BbV%2BrTYRcarbnOjM3pMxqTsw%2BeyLj9zfyMhL7aZDkzos%2BYjv7E2xydJZEF66O8WNIdzhbZzgjqf1%2F%2BOc%2Fc%2Bso5q6fJ2eJ5nRrSspfflN%2BcV%2FMC6yu0jRnqwpq%2BtN7GZ%2BIXZwlHdef6LKb8orKEH0%2FGMs7qeXzF29uWrQLamiSf1vqo0vTWle%2BM%2FvLM6fLqQOixHnAMm9IOOXvsqpvQeg7Ou4ntLH%2Bbbl1fbZrzz%2FXvLP3svE7WtNtFXZyeZ9eVL1HdpWhn43RW9tN9n6R%2F67v6Ys%2F%2FUAZ3%2FSw%2BW%2BRhkUlnWzEfB576Cek7xcezoKxWsqte1nQdV5Lbjz3jvjS%2FkiuQnrzYr6qGW53WLmN8n2iePl28ncRzjwTz%2F3Rjory%2F7MeIhFf0goMv7wE7%2FfIyw4mDr%2FnAaTxgbNv0dvDGHE7ysshvl6Z78mZv0LYdLCrn%2FJbIyd%2BQR1dai207Dqikt3s4BdbXRsFXsnrr2sTJlt6iXgPKvzL4Ciqj6dYTQVu2Cmhr4nyuCr48%2FZFaDkDL74ce67JjeDoAGcq2qr6H3we1B2He3Vlqvz9JejwJNE0Irce7J%2FgKbLfOupjnKbDuVrezxP30%2BCSrfzLrCr7ctxDab8Pz3HponfBb9rmkflYGX77%2BLviWQ0%2FA4k93qEPxsRGTX0Hw5W1DKW8b7vdj%2BImH%2Fcb4fH162HYSzz1Wzf8TjomB%2FeULBF%2FCMzH91w0HZcrga1SBpoHPGXxFBV6GvBjPouo03WcEF%2Fo82a9SOcs5OVAs%2B6hPa%2Fa58QqgYwCsv58t%2BLKw1VdMG%2FPdqxxUb8%2FpwT2dKQ4D4uIzvf8Cj6%2FQsniPJ2EZJ5NYW%2BcmPb4C2lpsPiOe%2BTI%2BzzPet5M61M96Co4L276THMPW30ac9XWVP7SeJXn3MUzC2jLN%2BlTDoG99FskZfAnbra0unr42Iqu7de1si3561k8507CNc6M0TL%2BX9rmO58%2BsVxFN9SWpn9hnVhzHZFy6wrmWN93Zfqzr4Cy4UhWS34TBV5rJ7bLMoj5xzzE%2BV5%2Beajuxc4818%2F9kY2J4f0nwJe1QbfnQX4wOvEx5Gd%2FyMtweM%2FluwHaW5Q8op%2FhslucWmSFqDdvfO4gJpOJ%2FI623p2NC6O7kQh%2FejwokLe0kuIxRx7KNvK0lzWfEYNFsv6q7z8UtcGEPOkfdYm39XZ9heQDYfN1e%2FuB6FuRdnJ95%2F2r9%2F676kN12uCzaMj1XXZiO2RRtVN7ONuqnfQHFkFP32XHL7823kJrStQV1jlu0jXMFQf2sWDDAdVz6y7pITDTZk9fhoZpUzvaLN1haMc8zppcr%2BJpuU3Ql5LnvGJ%2B3T0%2Bznai5xxaPHVl%2F12%2FUcrJq33ntN37JcqnK9mlS9TvkadB6Kcxf9XK5J%2FX5vCVYlviortf6ydV6udR6SdeAh777d6YMf8tXM0SW07xB9bd5EvNQP9u%2BtHjg%2Faj%2Ba77XLUsb%2BW4M63tMQpcjFdXXFkLrze34X%2BRTvpuWP20Zw0nbWuZ8Hv9rHw7v02sfQq8f8i%2BqA%2FJQ5femnxLvlkM%2FmQ7UZPtOl7%2Brp8Vx1S2v%2FChXln%2Bn9nCs6rV5%2BF7nv%2B3%2FhkUVusUY%2BofzdT51%2B9lCt%2FCAuA%2BOqLtV7SxNPz0vg15Wvkm3iEzz9GlZ2EDy%2Fij9%2BoHZYh39IhTShSA2qJ%2Bg41lS1un3ZUvo%2B9Kt3%2B9VzUkOZ3Wv9kFZDsuON4ttNMutm14rEJrf11QvKqLL2%2Fx1i8C15svb7znG5%2B7TI7az29xLIrRcW%2FSX4QKDryHT9hVyRvRqO3pg2VsfeKm074Mprt2KTsqzKpHWvfRQ5yUbHchZJip6P40Ovnrlyr7P6t7ZEvaSxhT2qi8tvN7SylH%2BvcsobWu589lNAPVkvxl8uxMsXaCg30dUNiPAfPBOve90%2Bbe2V3vQ2%2Bsm3N1kZzyZaf%2B7G4Ne8v1eMXW3rp2l7qf1u5vqFeP6ibr3ZFl9QvM5nfDa3i0kfN9V0UZfk1UP25UtLSc5bOkkq5%2BI4zn03V6iFQ796ZaXSxukG1Zdruvj3i5rqd7n%2B3Wrd5EJHIyRTyLNCoej4LOefPcvat1z%2FMvdp4fYe%2B4lEV6uV5jXBl%2F5Oh79S8BqMZ3kph4P9Tid%2B6V0070ITl%2F9kr3s8Vbolx4uB6t7H8Vt4aja3afPFMzoszqH42wpWNPZo%2FqsgezN9IszUIEv%2FduvvrS4ekslT%2Fn3LaPmb2v589n2ee1kv1nGuD8jPL0KU5bLs8Xp950u%2F%2BwFmou%2FtVf192sPesJdBxntstGzK07VpLC516Aeg7oTfJtO2oLF1d2adlZb208P%2BZsuK1%2FcPlV7Aerd%2FbLkkE00%2B1Vwl0i3r9XXpZsUhV6FHCWVoH5ijmdxWdtvi18c7U63u3plu5Kj6pi%2BMF7NCcuvjD558rCctS%2BNB8p29Iu8x3f57Df%2B5e7T5dvZf%2B4lEVd%2FyfrLSOHB1%2FUq64irifW7q5NcfbuKrnDb%2B0MM6lsgbld1Le%2FpAzDxeyOGwUN222NEOR1pua5c6vdjOK9UNuX0vbslpdD6GolpY8bfJKi3aLnKv2cZLYxtbaN8OupKT1LKv7d2QjNK%2B9jfEnZp99Nkuyv2ndVQ%2Fv42tE3s2B66CXd9pedPE2jMJzxdn1jts0uW93uF9sFxdRffzgyi%2B2l9u2E1kbnpKybVZKSbnHy9p5iYdO8KFd3Wpm897Np7d8vl6iudvvox9gcxx3NIWZX8qpc3XUE%2FYbwzKTC%2FUvq2va8%2F9tscEx3Ht0Jw9WJR9j3Hv%2Fx9umw7G849kt6unqD%2Bss9rKzEPik0eZPQsyWtdjWjxmWtFkw1WOxwtZBG2vGnIQ%2BWmB4YdC2jYVtsJXe1Q8r4N0Tba9Oz7MMcDixH1taaNha4Sads3rqVzBQ%2Fqilac9Jbf814e6WqHtjImXXAjoK0lzaekLU9Xr5omI%2FsseN%2BJjmFH%2B0rwcHZ4f5RgwY02U5M6dR0nyvLwvDM%2FEe122N50W%2BN8iFY7dPTl8e0sXT9tfDfn7DPrsuWBy2HLF%2F4bFnQ4e%2FsU0z4PqR9XncWP3bKyBiwEIEnX1U94xq2gdS8k7%2Fl62ttP%2F%2B%2BJVpkb5p%2B%2BsXzlMZtsjH%2B695X%2BPGmfLtnOhnOPFPP%2F6HKF95cvsNrhwL2SjDuo8f8203u%2BHO9RsVsbfMWUX1hOYd7k77KIf6dJSjH1laqO177nK0XHnL4sid%2FzlTD4km47fT7dfdfwneUEc9g%2FKdqh7Bj2pptioLbUjf34TxV8OYKaIWOCfihd8OVf0W%2Fde76WvwlpZ4n6aV2ngpeSmidOsuAr%2BH1XMcveG4KvNX2L7g9Cj%2BeQso7freYjTdf3bjpz2QPe7RXS%2Fzh%2FYx4n1gVf7j%2FnCQbJcZQy%2BHrm69NDtrPFPGr%2FMXHFe3YTznmjVztsn%2BO5K%2BNtn83qOk9VWq6b179d3C%2FarIo0eghOqLlv0%2FCj%2BkFh%2FyNFhbo92%2FvZHx%2B%2FEj4D5tbU3SLP7T21tvto15VTllbVrmbPYQ314%2F%2FudmLqK6aNFTdLe%2B4%2Fl9ZbWnHtxV0Wm73KGNrWUuZTUlf6OSTT7U79sxOGW3Vi9p1E2%2F%2Ba66tp5%2BXyIfsYu7X5%2Fql3yzMr%2BlkgleuZ4rp9zttJ%2B4xBaJ%2Ftqru4dpagn64Xo3rvnjW62drO%2BPbD2AfTu1uZgm4b7J5564QvBBHat9j7g7DjOaSs3e1%2BoufG5ek2bfDePd800T0fMyl7zL4JcLyq0jhnrOtP8siGjH6WxzqXdMxP9xv%2F8vXpIdvZYu6Rcv4%2FT1dWrteY177VEVi65EZLmyZqKAAA4AeoJjZvVZBXT3IyzXH2s1VZv1u6ABYSv%2BerezD58aGKfOuQAwCAl9at5Hc4K8GiwN%2FcVmX9bukCMEkefLVLrne38e3yTigAAPBSdnx%2FVHZblfW7pQvAKPFth53u8vWgvr843T29AAAAAPDdbBN8AQAAAAAmEt92CAAAAAAwIfgCAAAAgAwIvgAAAAAgA4IvAAAAAMiA4AsAAAAAMiD4AgAAAIAMCL4AAAAAIAOCLwAAAADIgOALAAAAADIg%2BAIAAACADAi%2BAAAAACADgi8AAAAAyIDgCwAAAAAyIPgCAAAAgAwIvgAAAAAgA4IvAAAAAMiA4AsAAAAAMiD4AgAAAIAMCL4AAAAAIAOCLwAAAADIgOALAAAAADL4P%2BNTHNIY7Ho%2FAAAAAElFTkSuQmCC&language_type=CHN_ENG&probability=true&detect_direction=true

out body

Macro Q2
Code:
Copy      Help
str ss.getfile("$desktop$\1.png");; change to file location
_s.encrypt(4 ss "" 2)

str body=
F
;access_token=24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329&image={_s}&language_type=CHN_ENG&probability=true&detect_direction=true

out body


Attached Files
.zip   png.zip (Size: 4.06 KB / Downloads: 16)
#17
results are exactly the same on my test results are exactly the same as online conversion tools as well
#18
The base64 value of the image is the same, but, The output of the body is not the same, why?
I do not understand
#19
GIF demo
https://ibb.co/F8GNcbN
#20
It’s a bit strange, because the output code is different, I can’t get the result of the recognition.  Huh
#21
try

Function Function16
Code:
Copy      Help
str body=F"access_token=24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329&image={_s}&language_type=CHN_ENG&probability=true&detect_direction=true"
out body
#22
Function Function17
Code:
Copy      Help
typelib WinHttp {662901FC-6951-4854-9EB2-D9A2570F2B2E} 5.1
WinHttp.WinHttpRequest r._create
r.Open("POST" F"https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic")
r.setRequestHeader("content-type", "application/x-www-form-urlencoded")
str data="access_token=24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329&image=iVBORw0KGgoAAAANSUhEUgAAA18AAABeCAYAAADc8q5RAAARPUlEQVR4nO3diZXjKhaAYWqSsTuDl4VVGXQWdgiuLDqDcmXRGViOxqMNrSwXhJCr%2Bv%2FOqTNv2jYChICrBb09KwoAAAAAsKn%2F7Z0BAAAAAPgXEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQwb8RfJUXdXx7U2%2FFbe%2BcANjLrVBvdT%2Bg%2F%2BgPBtRNtPJybOqMKovX1uFRXcq9c7K9rcr63dLFxujTX9rK4KtUl%2BPbdAfXf8eLSnuc3lTRpF2o%2FZuPzouvnKPvvUS%2BAe2VjqdM6oHo%2FWvvXLyml6gb3SZtkzzf53osGrfpf7CdRxvGK%2BccTZ%2FInOyH8VgXMxco1Z%2FbQ6lDoX4f6%2BbY%2FvYome3rCWaf6Vff59OyNv%2FSBe%2B%2BP3d9LNMdmPaPNJhypTt8pzn2hPt6OWfcal9Z5qebzFFfzEv06XCJDr7aDuOX%2BngYPnx8qF%2FSzvM7q8p5sfUatz%2BKpv%2BN%2FKSroz%2BpLElUg%2FClPhoP6nx%2Fquez%2B6sGKOrKUTdZVZO7U%2F2%2FD1Waho2%2BP7V8Xv5R9RxRnX6r3Dn%2FGaoJ8P1ctQKlvt5tk%2BGqrRQfqqnmz1JdrZPxkW4u4A7o2n13KH6rOsni2ubjUe1z9wxi1Havifb61v3BrKxbp9vO094Nc5GH%2BvglKKcgv%2BWlMM8Dl1%2Bs6tY0Z%2FxS76mvrDVBuWV%2BWmva5U%2B9mrdjn%2F7Pj6cBnhHu58Oz%2Fmnzd%2FpcfP55Uv3nh2rv7%2B5%2Bfh4seQ33%2BTzVaR0ObZqH83NZwvvzfBh9R52eKbaMDSVtIzv7SWVJojtmTfXxz9eVo26yZ%2BVkHVN8Y47%2B7R7jjc7bK1ThWn09O%2FbBso67NmQY54a5gH0MbL8z%2FrwbP311qo9d4xgcaeP%2BYFlWb4a6ujg8XU3bmK4ui2GfDcdTRLqztPs%2Fz37o28Lse7Z%2Fj%2BYo92ij3rJ%2FXzv26f%2F8eCoXceXrpi7d6YSqfo3RdHGr%2Fv2zOY2pHh%2BXF738v1ahrlWvqB439Wd%2B9uR2ac64nK7XtGe3AIQr%2F%2F7sW0zWeKW6OR6bKx7LPOlbn07qdDB9Xl8Ya8%2F0FvZ7oyBwvN7Uub38Nb1aVV5UUQ9qh7O6iS55tYrbvU1PfVX70PSNavysd93kiuVR%2FS6aH6kv84%2FaLFWf1TOR5FeRNmMqq%2B8n7Vyimkw4rjRa0i3Lpn6qiZoqZz8%2BXkv16brSHJtfm6r9NBdj1El9ltN5Ud9GTHOpmE3pdnG%2BL8o92qh6PoVXb7%2BbV%2BrTYRcarbnOjM3pMxqTsw%2BeyLj9zfyMhL7aZDkzos%2BYjv7E2xydJZEF66O8WNIdzhbZzgjqf1%2F%2BOc%2Fc%2Bso5q6fJ2eJ5nRrSspfflN%2BcV%2FMC6yu0jRnqwpq%2BtN7GZ%2BIXZwlHdef6LKb8orKEH0%2FGMs7qeXzF29uWrQLamiSf1vqo0vTWle%2BM%2FvLM6fLqQOixHnAMm9IOOXvsqpvQeg7Ou4ntLH%2Bbbl1fbZrzz%2FXvLP3svE7WtNtFXZyeZ9eVL1HdpWhn43RW9tN9n6R%2F67v6Ys%2F%2FUAZ3%2FSw%2BW%2BRhkUlnWzEfB576Cek7xcezoKxWsqte1nQdV5Lbjz3jvjS%2FkiuQnrzYr6qGW53WLmN8n2iePl28ncRzjwTz%2F3Rjory%2F7MeIhFf0goMv7wE7%2FfIyw4mDr%2FnAaTxgbNv0dvDGHE7ysshvl6Z78mZv0LYdLCrn%2FJbIyd%2BQR1dai207Dqikt3s4BdbXRsFXsnrr2sTJlt6iXgPKvzL4Ciqj6dYTQVu2Cmhr4nyuCr48%2FZFaDkDL74ce67JjeDoAGcq2qr6H3we1B2He3Vlqvz9JejwJNE0Irce7J%2FgKbLfOupjnKbDuVrezxP30%2BCSrfzLrCr7ctxDab8Pz3HponfBb9rmkflYGX77%2BLviWQ0%2FA4k93qEPxsRGTX0Hw5W1DKW8b7vdj%2BImH%2Fcb4fH162HYSzz1Wzf8TjomB%2FeULBF%2FCMzH91w0HZcrga1SBpoHPGXxFBV6GvBjPouo03WcEF%2Fo82a9SOcs5OVAs%2B6hPa%2Fa58QqgYwCsv58t%2BLKw1VdMG%2FPdqxxUb8%2FpwT2dKQ4D4uIzvf8Cj6%2FQsniPJ2EZJ5NYW%2BcmPb4C2lpsPiOe%2BTI%2BzzPet5M61M96Co4L276THMPW30ac9XWVP7SeJXn3MUzC2jLN%2BlTDoG99FskZfAnbra0unr42Iqu7de1si3561k8507CNc6M0TL%2BX9rmO58%2BsVxFN9SWpn9hnVhzHZFy6wrmWN93Zfqzr4Cy4UhWS34TBV5rJ7bLMoj5xzzE%2BV5%2Beajuxc4818%2F9kY2J4f0nwJe1QbfnQX4wOvEx5Gd%2FyMtweM%2FluwHaW5Q8op%2FhslucWmSFqDdvfO4gJpOJ%2FI623p2NC6O7kQh%2FejwokLe0kuIxRx7KNvK0lzWfEYNFsv6q7z8UtcGEPOkfdYm39XZ9heQDYfN1e%2FuB6FuRdnJ95%2F2r9%2F676kN12uCzaMj1XXZiO2RRtVN7ONuqnfQHFkFP32XHL7823kJrStQV1jlu0jXMFQf2sWDDAdVz6y7pITDTZk9fhoZpUzvaLN1haMc8zppcr%2BJpuU3Ql5LnvGJ%2B3T0%2Bznai5xxaPHVl%2F12%2FUcrJq33ntN37JcqnK9mlS9TvkadB6Kcxf9XK5J%2FX5vCVYlviortf6ydV6udR6SdeAh777d6YMf8tXM0SW07xB9bd5EvNQP9u%2BtHjg%2Faj%2Ba77XLUsb%2BW4M63tMQpcjFdXXFkLrze34X%2BRTvpuWP20Zw0nbWuZ8Hv9rHw7v02sfQq8f8i%2BqA%2FJQ5femnxLvlkM%2FmQ7UZPtOl7%2Brp8Vx1S2v%2FChXln%2Bn9nCs6rV5%2BF7nv%2B3%2FhkUVusUY%2BofzdT51%2B9lCt%2FCAuA%2BOqLtV7SxNPz0vg15Wvkm3iEzz9GlZ2EDy%2Fij9%2BoHZYh39IhTShSA2qJ%2Bg41lS1un3ZUvo%2B9Kt3%2B9VzUkOZ3Wv9kFZDsuON4ttNMutm14rEJrf11QvKqLL2%2Fx1i8C15svb7znG5%2B7TI7az29xLIrRcW%2FSX4QKDryHT9hVyRvRqO3pg2VsfeKm074Mprt2KTsqzKpHWvfRQ5yUbHchZJip6P40Ovnrlyr7P6t7ZEvaSxhT2qi8tvN7SylH%2BvcsobWu589lNAPVkvxl8uxMsXaCg30dUNiPAfPBOve90%2Bbe2V3vQ2%2Bsm3N1kZzyZaf%2B7G4Ne8v1eMXW3rp2l7qf1u5vqFeP6ibr3ZFl9QvM5nfDa3i0kfN9V0UZfk1UP25UtLSc5bOkkq5%2BI4zn03V6iFQ796ZaXSxukG1Zdruvj3i5rqd7n%2B3Wrd5EJHIyRTyLNCoej4LOefPcvat1z%2FMvdp4fYe%2B4lEV6uV5jXBl%2F5Oh79S8BqMZ3kph4P9Tid%2B6V0070ITl%2F9kr3s8Vbolx4uB6t7H8Vt4aja3afPFMzoszqH42wpWNPZo%2FqsgezN9IszUIEv%2FduvvrS4ekslT%2Fn3LaPmb2v589n2ee1kv1nGuD8jPL0KU5bLs8Xp950u%2F%2BwFmou%2FtVf192sPesJdBxntstGzK07VpLC516Aeg7oTfJtO2oLF1d2adlZb208P%2BZsuK1%2FcPlV7Aerd%2FbLkkE00%2B1Vwl0i3r9XXpZsUhV6FHCWVoH5ijmdxWdtvi18c7U63u3plu5Kj6pi%2BMF7NCcuvjD558rCctS%2BNB8p29Iu8x3f57Df%2B5e7T5dvZf%2B4lEVd%2FyfrLSOHB1%2FUq64irifW7q5NcfbuKrnDb%2B0MM6lsgbld1Le%2FpAzDxeyOGwUN222NEOR1pua5c6vdjOK9UNuX0vbslpdD6GolpY8bfJKi3aLnKv2cZLYxtbaN8OupKT1LKv7d2QjNK%2B9jfEnZp99Nkuyv2ndVQ%2Fv42tE3s2B66CXd9pedPE2jMJzxdn1jts0uW93uF9sFxdRffzgyi%2B2l9u2E1kbnpKybVZKSbnHy9p5iYdO8KFd3Wpm897Np7d8vl6iudvvox9gcxx3NIWZX8qpc3XUE%2FYbwzKTC%2FUvq2va8%2F9tscEx3Ht0Jw9WJR9j3Hv%2Fx9umw7G849kt6unqD%2Bss9rKzEPik0eZPQsyWtdjWjxmWtFkw1WOxwtZBG2vGnIQ%2BWmB4YdC2jYVtsJXe1Q8r4N0Tba9Oz7MMcDixH1taaNha4Sads3rqVzBQ%2Fqilac9Jbf814e6WqHtjImXXAjoK0lzaekLU9Xr5omI%2FsseN%2BJjmFH%2B0rwcHZ4f5RgwY02U5M6dR0nyvLwvDM%2FEe122N50W%2BN8iFY7dPTl8e0sXT9tfDfn7DPrsuWBy2HLF%2F4bFnQ4e%2FsU0z4PqR9XncWP3bKyBiwEIEnX1U94xq2gdS8k7%2Fl62ttP%2F%2B%2BJVpkb5p%2B%2BsXzlMZtsjH%2B695X%2BPGmfLtnOhnOPFPP%2F6HKF95cvsNrhwL2SjDuo8f8203u%2BHO9RsVsbfMWUX1hOYd7k77KIf6dJSjH1laqO177nK0XHnL4sid%2FzlTD4km47fT7dfdfwneUEc9g%2FKdqh7Bj2pptioLbUjf34TxV8OYKaIWOCfihd8OVf0W%2Fde76WvwlpZ4n6aV2ngpeSmidOsuAr%2BH1XMcveG4KvNX2L7g9Cj%2BeQso7freYjTdf3bjpz2QPe7RXS%2Fzh%2FYx4n1gVf7j%2FnCQbJcZQy%2BHrm69NDtrPFPGr%2FMXHFe3YTznmjVztsn%2BO5K%2BNtn83qOk9VWq6b179d3C%2FarIo0eghOqLlv0%2FCj%2BkFh%2FyNFhbo92%2FvZHx%2B%2FEj4D5tbU3SLP7T21tvto15VTllbVrmbPYQ314%2F%2FudmLqK6aNFTdLe%2B4%2Fl9ZbWnHtxV0Wm73KGNrWUuZTUlf6OSTT7U79sxOGW3Vi9p1E2%2F%2Ba66tp5%2BXyIfsYu7X5%2Fql3yzMr%2BlkgleuZ4rp9zttJ%2B4xBaJ%2Ftqru4dpagn64Xo3rvnjW62drO%2BPbD2AfTu1uZgm4b7J5564QvBBHat9j7g7DjOaSs3e1%2BoufG5ek2bfDePd800T0fMyl7zL4JcLyq0jhnrOtP8siGjH6WxzqXdMxP9xv%2F8vXpIdvZYu6Rcv4%2FT1dWrteY177VEVi65EZLmyZqKAAA4AeoJjZvVZBXT3IyzXH2s1VZv1u6ABYSv%2BerezD58aGKfOuQAwCAl9at5Hc4K8GiwN%2FcVmX9bukCMEkefLVLrne38e3yTigAAPBSdnx%2FVHZblfW7pQvAKPFth53u8vWgvr843T29AAAAAPDdbBN8AQAAAAAmEt92CAAAAAAwIfgCAAAAgAwIvgAAAAAgA4IvAAAAAMiA4AsAAAAAMiD4AgAAAIAMCL4AAAAAIAOCLwAAAADIgOALAAAAADIg%2BAIAAACADAi%2BAAAAACADgi8AAAAAyIDgCwAAAAAyIPgCAAAAgAwIvgAAAAAgA4IvAAAAAMiA4AsAAAAAMiD4AgAAAIAMCL4AAAAAIAOCLwAAAADIgOALAAAAADL4P%2BNTHNIY7Ho%2FAAAAAElFTkSuQmCC"
r.Send(data)
out r.ResponseText
#23
@redbull2k   @kevin

Still having problems with the output, indicating that the image format is incorrect. Huh


Macro Macro3
Code:
Copy      Help
typelib WinHttp {662901FC-6951-4854-9EB2-D9A2570F2B2E} 5.1
WinHttp.WinHttpRequest r._create
r.Open("POST" F"https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic")
r.setRequestHeader("content-type", "application/x-www-form-urlencoded")

str ss.getfile("$desktop$\1.png");; change to file location
_s.encrypt(4 ss "" 2)

;;;have problem with the output, indicating that the image format is incorrect.
;_s-"access_token=24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329&image="
;_s+"&language_type=CHN_ENG&probability=true&detect_direction=true"
;mes _s

;;;have problem with the output, indicating that the image format is incorrect.
str body=F"access_token=24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329&image={_s}&language_type=CHN_ENG&probability=true&detect_direction=true"
mes body

r.Send(body)
ARRAY(byte) a=r.ResponseBody
str s.fromn(&a[0] a.len)

IXml x=JsonToXml(s 1)
IXmlNode ro=x.Path("root/words_result/item/words")
str v1=ro.Value
mes v1
#24
i tried it using several base64 encoders(even used chrome and firefox to get the encoding)  all return image format error . Not sure what the problem is and since baudi is in chinese hard to translate
#25
https://tool.css-js.com/base64.html

I use the online transcoding above and manually enter it into the QM code to successfully identify it.

But using QM's base64 function will prompt the image format error.


Macro OK
Code:
Copy      Help
typelib WinHttp {662901FC-6951-4854-9EB2-D9A2570F2B2E} 5.1
WinHttp.WinHttpRequest r._create
r.Open("POST" F"https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic")
r.setRequestHeader("content-type", "application/x-www-form-urlencoded")

str body=
F
;access_token=24.b305c9822131e65eda05e29c157dd719.2592000.1559103982.282335-16139329&image=iVBORw0KGgoAAAANSUhEUgAAA18AAABeCAYAAADc8q5RAAARPUlEQVR4nO3diZXjKhaAYWqSsTuDl4VVGXQWdgiuLDqDcmXRGViOxqMNrSwXhJCr%2Bv%2FOqTNv2jYChICrBb09KwoAAAAAsKn%2F7Z0BAAAAAPgXEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQAcEXAAAAAGRA8AUAAAAAGRB8AQAAAEAGBF8AAAAAkAHBFwAAAABkQPAFAAAAABkQfAEAAABABgRfAAAAAJABwRcAAAAAZEDwBQAAAAAZEHwBAAAAQAYEXwAAAACQwb8RfJUXdXx7U2%2FFbe%2BcANjLrVBvdT%2Bg%2F%2BgPBtRNtPJybOqMKovX1uFRXcq9c7K9rcr63dLFxujTX9rK4KtUl%2BPbdAfXf8eLSnuc3lTRpF2o%2FZuPzouvnKPvvUS%2BAe2VjqdM6oHo%2FWvvXLyml6gb3SZtkzzf53osGrfpf7CdRxvGK%2BccTZ%2FInOyH8VgXMxco1Z%2FbQ6lDoX4f6%2BbY%2FvYome3rCWaf6Vff59OyNv%2FSBe%2B%2BP3d9LNMdmPaPNJhypTt8pzn2hPt6OWfcal9Z5qebzFFfzEv06XCJDr7aDuOX%2BngYPnx8qF%2FSzvM7q8p5sfUatz%2BKpv%2BN%2FKSroz%2BpLElUg%2FClPhoP6nx%2Fquez%2B6sGKOrKUTdZVZO7U%2F2%2FD1Waho2%2BP7V8Xv5R9RxRnX6r3Dn%2FGaoJ8P1ctQKlvt5tk%2BGqrRQfqqnmz1JdrZPxkW4u4A7o2n13KH6rOsni2ubjUe1z9wxi1Havifb61v3BrKxbp9vO094Nc5GH%2BvglKKcgv%2BWlMM8Dl1%2Bs6tY0Z%2FxS76mvrDVBuWV%2BWmva5U%2B9mrdjn%2F7Pj6cBnhHu58Oz%2Fmnzd%2FpcfP55Uv3nh2rv7%2B5%2Bfh4seQ33%2BTzVaR0ObZqH83NZwvvzfBh9R52eKbaMDSVtIzv7SWVJojtmTfXxz9eVo26yZ%2BVkHVN8Y47%2B7R7jjc7bK1ThWn09O%2FbBso67NmQY54a5gH0MbL8z%2FrwbP311qo9d4xgcaeP%2BYFlWb4a6ujg8XU3bmK4ui2GfDcdTRLqztPs%2Fz37o28Lse7Z%2Fj%2BYo92ij3rJ%2FXzv26f%2F8eCoXceXrpi7d6YSqfo3RdHGr%2Fv2zOY2pHh%2BXF738v1ahrlWvqB439Wd%2B9uR2ac64nK7XtGe3AIQr%2F%2F7sW0zWeKW6OR6bKx7LPOlbn07qdDB9Xl8Ya8%2F0FvZ7oyBwvN7Uub38Nb1aVV5UUQ9qh7O6iS55tYrbvU1PfVX70PSNavysd93kiuVR%2FS6aH6kv84%2FaLFWf1TOR5FeRNmMqq%2B8n7Vyimkw4rjRa0i3Lpn6qiZoqZz8%2BXkv16brSHJtfm6r9NBdj1El9ltN5Ud9GTHOpmE3pdnG%2BL8o92qh6PoVXb7%2BbV%2BrTYRcarbnOjM3pMxqTsw%2BeyLj9zfyMhL7aZDkzos%2BYjv7E2xydJZEF66O8WNIdzhbZzgjqf1%2F%2BOc%2Fc%2Bso5q6fJ2eJ5nRrSspfflN%2BcV%2FMC6yu0jRnqwpq%2BtN7GZ%2BIXZwlHdef6LKb8orKEH0%2FGMs7qeXzF29uWrQLamiSf1vqo0vTWle%2BM%2FvLM6fLqQOixHnAMm9IOOXvsqpvQeg7Ou4ntLH%2Bbbl1fbZrzz%2FXvLP3svE7WtNtFXZyeZ9eVL1HdpWhn43RW9tN9n6R%2F67v6Ys%2F%2FUAZ3%2FSw%2BW%2BRhkUlnWzEfB576Cek7xcezoKxWsqte1nQdV5Lbjz3jvjS%2FkiuQnrzYr6qGW53WLmN8n2iePl28ncRzjwTz%2F3Rjory%2F7MeIhFf0goMv7wE7%2FfIyw4mDr%2FnAaTxgbNv0dvDGHE7ysshvl6Z78mZv0LYdLCrn%2FJbIyd%2BQR1dai207Dqikt3s4BdbXRsFXsnrr2sTJlt6iXgPKvzL4Ciqj6dYTQVu2Cmhr4nyuCr48%2FZFaDkDL74ce67JjeDoAGcq2qr6H3we1B2He3Vlqvz9JejwJNE0Irce7J%2FgKbLfOupjnKbDuVrezxP30%2BCSrfzLrCr7ctxDab8Pz3HponfBb9rmkflYGX77%2BLviWQ0%2FA4k93qEPxsRGTX0Hw5W1DKW8b7vdj%2BImH%2Fcb4fH162HYSzz1Wzf8TjomB%2FeULBF%2FCMzH91w0HZcrga1SBpoHPGXxFBV6GvBjPouo03WcEF%2Fo82a9SOcs5OVAs%2B6hPa%2Fa58QqgYwCsv58t%2BLKw1VdMG%2FPdqxxUb8%2FpwT2dKQ4D4uIzvf8Cj6%2FQsniPJ2EZJ5NYW%2BcmPb4C2lpsPiOe%2BTI%2BzzPet5M61M96Co4L276THMPW30ac9XWVP7SeJXn3MUzC2jLN%2BlTDoG99FskZfAnbra0unr42Iqu7de1si3561k8507CNc6M0TL%2BX9rmO58%2BsVxFN9SWpn9hnVhzHZFy6wrmWN93Zfqzr4Cy4UhWS34TBV5rJ7bLMoj5xzzE%2BV5%2Beajuxc4818%2F9kY2J4f0nwJe1QbfnQX4wOvEx5Gd%2FyMtweM%2FluwHaW5Q8op%2FhslucWmSFqDdvfO4gJpOJ%2FI623p2NC6O7kQh%2FejwokLe0kuIxRx7KNvK0lzWfEYNFsv6q7z8UtcGEPOkfdYm39XZ9heQDYfN1e%2FuB6FuRdnJ95%2F2r9%2F676kN12uCzaMj1XXZiO2RRtVN7ONuqnfQHFkFP32XHL7823kJrStQV1jlu0jXMFQf2sWDDAdVz6y7pITDTZk9fhoZpUzvaLN1haMc8zppcr%2BJpuU3Ql5LnvGJ%2B3T0%2Bznai5xxaPHVl%2F12%2FUcrJq33ntN37JcqnK9mlS9TvkadB6Kcxf9XK5J%2FX5vCVYlviortf6ydV6udR6SdeAh777d6YMf8tXM0SW07xB9bd5EvNQP9u%2BtHjg%2Faj%2Ba77XLUsb%2BW4M63tMQpcjFdXXFkLrze34X%2BRTvpuWP20Zw0nbWuZ8Hv9rHw7v02sfQq8f8i%2BqA%2FJQ5femnxLvlkM%2FmQ7UZPtOl7%2Brp8Vx1S2v%2FChXln%2Bn9nCs6rV5%2BF7nv%2B3%2FhkUVusUY%2BofzdT51%2B9lCt%2FCAuA%2BOqLtV7SxNPz0vg15Wvkm3iEzz9GlZ2EDy%2Fij9%2BoHZYh39IhTShSA2qJ%2Bg41lS1un3ZUvo%2B9Kt3%2B9VzUkOZ3Wv9kFZDsuON4ttNMutm14rEJrf11QvKqLL2%2Fx1i8C15svb7znG5%2B7TI7az29xLIrRcW%2FSX4QKDryHT9hVyRvRqO3pg2VsfeKm074Mprt2KTsqzKpHWvfRQ5yUbHchZJip6P40Ovnrlyr7P6t7ZEvaSxhT2qi8tvN7SylH%2BvcsobWu589lNAPVkvxl8uxMsXaCg30dUNiPAfPBOve90%2Bbe2V3vQ2%2Bsm3N1kZzyZaf%2B7G4Ne8v1eMXW3rp2l7qf1u5vqFeP6ibr3ZFl9QvM5nfDa3i0kfN9V0UZfk1UP25UtLSc5bOkkq5%2BI4zn03V6iFQ796ZaXSxukG1Zdruvj3i5rqd7n%2B3Wrd5EJHIyRTyLNCoej4LOefPcvat1z%2FMvdp4fYe%2B4lEV6uV5jXBl%2F5Oh79S8BqMZ3kph4P9Tid%2B6V0070ITl%2F9kr3s8Vbolx4uB6t7H8Vt4aja3afPFMzoszqH42wpWNPZo%2FqsgezN9IszUIEv%2FduvvrS4ekslT%2Fn3LaPmb2v589n2ee1kv1nGuD8jPL0KU5bLs8Xp950u%2F%2BwFmou%2FtVf192sPesJdBxntstGzK07VpLC516Aeg7oTfJtO2oLF1d2adlZb208P%2BZsuK1%2FcPlV7Aerd%2FbLkkE00%2B1Vwl0i3r9XXpZsUhV6FHCWVoH5ijmdxWdtvi18c7U63u3plu5Kj6pi%2BMF7NCcuvjD558rCctS%2BNB8p29Iu8x3f57Df%2B5e7T5dvZf%2B4lEVd%2FyfrLSOHB1%2FUq64irifW7q5NcfbuKrnDb%2B0MM6lsgbld1Le%2FpAzDxeyOGwUN222NEOR1pua5c6vdjOK9UNuX0vbslpdD6GolpY8bfJKi3aLnKv2cZLYxtbaN8OupKT1LKv7d2QjNK%2B9jfEnZp99Nkuyv2ndVQ%2Fv42tE3s2B66CXd9pedPE2jMJzxdn1jts0uW93uF9sFxdRffzgyi%2B2l9u2E1kbnpKybVZKSbnHy9p5iYdO8KFd3Wpm897Np7d8vl6iudvvox9gcxx3NIWZX8qpc3XUE%2FYbwzKTC%2FUvq2va8%2F9tscEx3Ht0Jw9WJR9j3Hv%2Fx9umw7G849kt6unqD%2Bss9rKzEPik0eZPQsyWtdjWjxmWtFkw1WOxwtZBG2vGnIQ%2BWmB4YdC2jYVtsJXe1Q8r4N0Tba9Oz7MMcDixH1taaNha4Sads3rqVzBQ%2Fqilac9Jbf814e6WqHtjImXXAjoK0lzaekLU9Xr5omI%2FsseN%2BJjmFH%2B0rwcHZ4f5RgwY02U5M6dR0nyvLwvDM%2FEe122N50W%2BN8iFY7dPTl8e0sXT9tfDfn7DPrsuWBy2HLF%2F4bFnQ4e%2FsU0z4PqR9XncWP3bKyBiwEIEnX1U94xq2gdS8k7%2Fl62ttP%2F%2B%2BJVpkb5p%2B%2BsXzlMZtsjH%2B695X%2BPGmfLtnOhnOPFPP%2F6HKF95cvsNrhwL2SjDuo8f8203u%2BHO9RsVsbfMWUX1hOYd7k77KIf6dJSjH1laqO177nK0XHnL4sid%2FzlTD4km47fT7dfdfwneUEc9g%2FKdqh7Bj2pptioLbUjf34TxV8OYKaIWOCfihd8OVf0W%2Fde76WvwlpZ4n6aV2ngpeSmidOsuAr%2BH1XMcveG4KvNX2L7g9Cj%2BeQso7freYjTdf3bjpz2QPe7RXS%2Fzh%2FYx4n1gVf7j%2FnCQbJcZQy%2BHrm69NDtrPFPGr%2FMXHFe3YTznmjVztsn%2BO5K%2BNtn83qOk9VWq6b179d3C%2FarIo0eghOqLlv0%2FCj%2BkFh%2FyNFhbo92%2FvZHx%2B%2FEj4D5tbU3SLP7T21tvto15VTllbVrmbPYQ314%2F%2FudmLqK6aNFTdLe%2B4%2Fl9ZbWnHtxV0Wm73KGNrWUuZTUlf6OSTT7U79sxOGW3Vi9p1E2%2F%2Ba66tp5%2BXyIfsYu7X5%2Fql3yzMr%2BlkgleuZ4rp9zttJ%2B4xBaJ%2Ftqru4dpagn64Xo3rvnjW62drO%2BPbD2AfTu1uZgm4b7J5564QvBBHat9j7g7DjOaSs3e1%2BoufG5ek2bfDePd800T0fMyl7zL4JcLyq0jhnrOtP8siGjH6WxzqXdMxP9xv%2F8vXpIdvZYu6Rcv4%2FT1dWrteY177VEVi65EZLmyZqKAAA4AeoJjZvVZBXT3IyzXH2s1VZv1u6ABYSv%2BerezD58aGKfOuQAwCAl9at5Hc4K8GiwN%2FcVmX9bukCMEkefLVLrne38e3yTigAAPBSdnx%2FVHZblfW7pQvAKPFth53u8vWgvr843T29AAAAAPDdbBN8AQAAAAAmEt92CAAAAAAwIfgCAAAAgAwIvgAAAAAgA4IvAAAAAMiA4AsAAAAAMiD4AgAAAIAMCL4AAAAAIAOCLwAAAADIgOALAAAAADIg%2BAIAAACADAi%2BAAAAACADgi8AAAAAyIDgCwAAAAAyIPgCAAAAgAwIvgAAAAAgA4IvAAAAAMiA4AsAAAAAMiD4AgAAAIAMCL4AAAAAIAOCLwAAAADIgOALAAAAADL4P%2BNTHNIY7Ho%2FAAAAAElFTkSuQmCC&language_type=CHN_ENG&probability=true&detect_direction=true

r.Send(body)
ARRAY(byte) a=r.ResponseBody
str s.fromn(&a[0] a.len)

IXml x=JsonToXml(s 0)

IXmlNode ro=x.Path("root/words_result/item/words")
str v1=ro.Value
mes v1

note:
image need Base64 format, delete the prefix data:image/png;base64, 
The following parameters can only identify Chinese and English.
language_type:CHN_ENG


I used online transcoding and tried several pictures, all of which can be successfully identified and very accurate.
#26
if i manually put it in postman from qm generated base64 it works
#27
Yes, but using the function directly, can't succeed, why?  Huh
#28
don't know maybe there are other parameters it needs that postman adds when calling
#29
I feel that no other parameters are needed because there are no other parameters in the VBS code.

I think the problem is to use the value of QM's base64 function, which has changed during the delivery process.

I tested it from the link below.

http://www.quickmacros.com/forum/showthr...9#pid33509
#30
i used qm to base64 encode  an image then used postman and it works every time so its not the base64 encoding


Forum Jump:


Users browsing this thread: 1 Guest(s)