Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(VB.NET UWP/WinRT) Google Cloud Vision Text DetectionDemonstrates calling the Google Cloud Vision for text detection (performs Optical Character Recognition). "Detects and extracts text within an image with support for a broad range of languages. It also features automatic language identification." See https://cloud.google.com/vision/docs/detecting-text
' This example requires the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. ' Build the following request: ' { ' "requests": [ ' { ' "image": { ' "content": "/9j/7QBEUGhvdG9zaG9...base64-encoded-image-content...fXNWzvDEeYxxxzj/Coa6Bax//Z" ' }, ' "features": [ ' { ' "type": "TEXT_DETECTION" ' } ' ] ' } ' ] ' } ' Use this online tool to generate the code from sample JSON: ' Generate Code to Create JSON ' Load an image file. Dim imageData As New Chilkat.BinData ' This image file contains some text... Dim success As Boolean = imageData.LoadFile("qa_data/jpg/text.jpg") If (success <> True) Then Debug.WriteLine("Failed to load image file.") Exit Sub End If ' Create the above JSON. Dim json As New Chilkat.JsonObject json.UpdateBd("requests[0].image.content","base64",imageData) json.UpdateString("requests[0].features[0].type","TEXT_DETECTION") ' Send the following POST with the HTTP request body containing the above JSON. ' POST https://vision.googleapis.com/v1/images:annotate?key=YOUR_API_KEY Dim http As New Chilkat.Http Dim sb As New Chilkat.StringBuilder Dim url As String = "https://vision.googleapis.com/v1/images:annotate?key=YOUR_API_KEY" Dim resp As Chilkat.HttpResponse = Await http.PostJson3Async(url,"application/json",json) If (http.LastMethodSuccess <> True) Then Debug.WriteLine(http.LastErrorText) Exit Sub End If Debug.WriteLine("status = " & resp.StatusCode) ' A 200 response status indicate success. If (resp.StatusCode <> 200) Then Debug.WriteLine(resp.BodyStr) Debug.WriteLine("Failed.") Exit Sub End If Dim sbResponseBody As New Chilkat.StringBuilder resp.GetBodySb(sbResponseBody) sbResponseBody.WriteFile("qa_output/textDetectResponse.json","utf-8",False) json.LoadSb(sbResponseBody) ' The response is a JSON document like this: ' Use this online tool to generate parsing code from sample JSON: ' Generate Parsing Code from JSON ' { ' "responses": [ ' { ' "textAnnotations": [ ' { ' "locale": "en", ' "description": "Chilkat is a cross-language, cross-platform\nAPl providing 90+ classes for many Internet\nprotocols, formats, and algorithms.\n", ' "boundingPoly": { ' "vertices": [ ' { ' "x": 17, ' "y": 14 ' }, ' ... ' ] ' } ' ], ' "text": "Chilkat is a cross-language, cross-platform\nAPl providing 90+ classes for many Internet\nprotocols, formats, and algorithms.\n" ' } ' } ' ] ' } ' The parsing code generated from the online tool: Dim i As Integer Dim count_i As Integer Dim fullTextAnnotationText As String Dim j As Integer Dim count_j As Integer Dim locale As String Dim description As String Dim k As Integer Dim count_k As Integer Dim x As Integer Dim y As Integer Dim width As Integer Dim height As Integer Dim languageCode As String Dim blockType As String Dim i1 As Integer Dim count_i1 As Integer Dim json1 As Chilkat.JsonObject Dim j1 As Integer Dim count_j1 As Integer Dim k1 As Integer Dim count_k1 As Integer Dim text As String Dim propertyDetectedBreakType As String Dim i2 As Integer Dim count_i2 As Integer Dim json2 As Chilkat.JsonObject i = 0 count_i = json.SizeOfArray("responses") While i < count_i json.I = i fullTextAnnotationText = json.StringOf("responses[i].fullTextAnnotation.text") j = 0 count_j = json.SizeOfArray("responses[i].textAnnotations") While j < count_j json.J = j locale = json.StringOf("responses[i].textAnnotations[j].locale") description = json.StringOf("responses[i].textAnnotations[j].description") k = 0 count_k = json.SizeOfArray("responses[i].textAnnotations[j].boundingPoly.vertices") While k < count_k json.K = k x = json.IntOf("responses[i].textAnnotations[j].boundingPoly.vertices[k].x") y = json.IntOf("responses[i].textAnnotations[j].boundingPoly.vertices[k].y") k = k + 1 End While j = j + 1 End While j = 0 count_j = json.SizeOfArray("responses[i].fullTextAnnotation.pages") While j < count_j json.J = j width = json.IntOf("responses[i].fullTextAnnotation.pages[j].width") height = json.IntOf("responses[i].fullTextAnnotation.pages[j].height") k = 0 count_k = json.SizeOfArray("responses[i].fullTextAnnotation.pages[j].property.detectedLanguages") While k < count_k json.K = k languageCode = json.StringOf("responses[i].fullTextAnnotation.pages[j].property.detectedLanguages[k].languageCode") k = k + 1 End While k = 0 count_k = json.SizeOfArray("responses[i].fullTextAnnotation.pages[j].blocks") While k < count_k json.K = k blockType = json.StringOf("responses[i].fullTextAnnotation.pages[j].blocks[k].blockType") json1 = json.ObjectOf("responses[i].fullTextAnnotation.pages[j].blocks[k]") i1 = 0 count_i1 = json1.SizeOfArray("property.detectedLanguages") While i1 < count_i1 json1.I = i1 languageCode = json1.StringOf("property.detectedLanguages[i].languageCode") i1 = i1 + 1 End While json1 = json.ObjectOf("responses[i].fullTextAnnotation.pages[j].blocks[k]") i1 = 0 count_i1 = json1.SizeOfArray("boundingBox.vertices") While i1 < count_i1 json1.I = i1 x = json1.IntOf("boundingBox.vertices[i].x") y = json1.IntOf("boundingBox.vertices[i].y") i1 = i1 + 1 End While json1 = json.ObjectOf("responses[i].fullTextAnnotation.pages[j].blocks[k]") i1 = 0 count_i1 = json1.SizeOfArray("paragraphs") While i1 < count_i1 json1.I = i1 j1 = 0 count_j1 = json1.SizeOfArray("paragraphs[i].property.detectedLanguages") While j1 < count_j1 json1.J = j1 languageCode = json1.StringOf("paragraphs[i].property.detectedLanguages[j].languageCode") j1 = j1 + 1 End While j1 = 0 count_j1 = json1.SizeOfArray("paragraphs[i].boundingBox.vertices") While j1 < count_j1 json1.J = j1 x = json1.IntOf("paragraphs[i].boundingBox.vertices[j].x") y = json1.IntOf("paragraphs[i].boundingBox.vertices[j].y") j1 = j1 + 1 End While j1 = 0 count_j1 = json1.SizeOfArray("paragraphs[i].words") While j1 < count_j1 json1.J = j1 k1 = 0 count_k1 = json1.SizeOfArray("paragraphs[i].words[j].property.detectedLanguages") While k1 < count_k1 json1.K = k1 languageCode = json1.StringOf("paragraphs[i].words[j].property.detectedLanguages[k].languageCode") k1 = k1 + 1 End While k1 = 0 count_k1 = json1.SizeOfArray("paragraphs[i].words[j].boundingBox.vertices") While k1 < count_k1 json1.K = k1 x = json1.IntOf("paragraphs[i].words[j].boundingBox.vertices[k].x") y = json1.IntOf("paragraphs[i].words[j].boundingBox.vertices[k].y") k1 = k1 + 1 End While k1 = 0 count_k1 = json1.SizeOfArray("paragraphs[i].words[j].symbols") While k1 < count_k1 json1.K = k1 text = json1.StringOf("paragraphs[i].words[j].symbols[k].text") propertyDetectedBreakType = json1.StringOf("paragraphs[i].words[j].symbols[k].property.detectedBreak.type") json2 = json1.ObjectOf("paragraphs[i].words[j].symbols[k]") i2 = 0 count_i2 = json2.SizeOfArray("property.detectedLanguages") While i2 < count_i2 json2.I = i2 languageCode = json2.StringOf("property.detectedLanguages[i].languageCode") i2 = i2 + 1 End While json2 = json1.ObjectOf("paragraphs[i].words[j].symbols[k]") i2 = 0 count_i2 = json2.SizeOfArray("boundingBox.vertices") While i2 < count_i2 json2.I = i2 x = json2.IntOf("boundingBox.vertices[i].x") y = json2.IntOf("boundingBox.vertices[i].y") i2 = i2 + 1 End While k1 = k1 + 1 End While j1 = j1 + 1 End While i1 = i1 + 1 End While k = k + 1 End While j = j + 1 End While i = i + 1 End While Debug.WriteLine("Success.") |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.