|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (PowerShell) 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 Note: This example requires Chilkat v11.0.0 or greater. 
 Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll" $success = $false # 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. $imageData = New-Object Chilkat.BinData # This image file contains some text... $success = $imageData.LoadFile("qa_data/jpg/text.jpg") if ($success -ne $true) { $("Failed to load image file.") exit } # Create the above JSON. $json = New-Object 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 $http = New-Object Chilkat.Http $http.SessionLogFilename = "c:/aaworkarea/sessionLog.txt" $sb = New-Object Chilkat.StringBuilder $url = "https://vision.googleapis.com/v1/images:annotate?key=YOUR_API_KEY" $resp = New-Object Chilkat.HttpResponse $success = $http.HttpJson("POST",$url,$json,"application/json",$resp) if ($success -eq $false) { $($http.LastErrorText) exit } $("status = " + $resp.StatusCode) # A 200 response status indicate success. if ($resp.StatusCode -ne 200) { $($resp.BodyStr) $("Failed.") exit } $sbResponseBody = New-Object 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: $json1 = New-Object Chilkat.JsonObject $json2 = New-Object Chilkat.JsonObject $i = 0 $count_i = $json.SizeOfArray("responses") while ($i -lt $count_i) { $json.I = $i $fullTextAnnotationText = $json.StringOf("responses[i].fullTextAnnotation.text") $j = 0 $count_j = $json.SizeOfArray("responses[i].textAnnotations") while ($j -lt $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 -lt $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 } $j = $j + 1 } $j = 0 $count_j = $json.SizeOfArray("responses[i].fullTextAnnotation.pages") while ($j -lt $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 -lt $count_k) { $json.K = $k $languageCode = $json.StringOf("responses[i].fullTextAnnotation.pages[j].property.detectedLanguages[k].languageCode") $k = $k + 1 } $k = 0 $count_k = $json.SizeOfArray("responses[i].fullTextAnnotation.pages[j].blocks") while ($k -lt $count_k) { $json.K = $k $blockType = $json.StringOf("responses[i].fullTextAnnotation.pages[j].blocks[k].blockType") $json.ObjectOf2("responses[i].fullTextAnnotation.pages[j].blocks[k]",$json1) $i1 = 0 $count_i1 = $json1.SizeOfArray("property.detectedLanguages") while ($i1 -lt $count_i1) { $json1.I = $i1 $languageCode = $json1.StringOf("property.detectedLanguages[i].languageCode") $i1 = $i1 + 1 } $json.ObjectOf2("responses[i].fullTextAnnotation.pages[j].blocks[k]",$json1) $i1 = 0 $count_i1 = $json1.SizeOfArray("boundingBox.vertices") while ($i1 -lt $count_i1) { $json1.I = $i1 $x = $json1.IntOf("boundingBox.vertices[i].x") $y = $json1.IntOf("boundingBox.vertices[i].y") $i1 = $i1 + 1 } $json.ObjectOf2("responses[i].fullTextAnnotation.pages[j].blocks[k]",$json1) $i1 = 0 $count_i1 = $json1.SizeOfArray("paragraphs") while ($i1 -lt $count_i1) { $json1.I = $i1 $j1 = 0 $count_j1 = $json1.SizeOfArray("paragraphs[i].property.detectedLanguages") while ($j1 -lt $count_j1) { $json1.J = $j1 $languageCode = $json1.StringOf("paragraphs[i].property.detectedLanguages[j].languageCode") $j1 = $j1 + 1 } $j1 = 0 $count_j1 = $json1.SizeOfArray("paragraphs[i].boundingBox.vertices") while ($j1 -lt $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 } $j1 = 0 $count_j1 = $json1.SizeOfArray("paragraphs[i].words") while ($j1 -lt $count_j1) { $json1.J = $j1 $k1 = 0 $count_k1 = $json1.SizeOfArray("paragraphs[i].words[j].property.detectedLanguages") while ($k1 -lt $count_k1) { $json1.K = $k1 $languageCode = $json1.StringOf("paragraphs[i].words[j].property.detectedLanguages[k].languageCode") $k1 = $k1 + 1 } $k1 = 0 $count_k1 = $json1.SizeOfArray("paragraphs[i].words[j].boundingBox.vertices") while ($k1 -lt $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 } $k1 = 0 $count_k1 = $json1.SizeOfArray("paragraphs[i].words[j].symbols") while ($k1 -lt $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") $json1.ObjectOf2("paragraphs[i].words[j].symbols[k]",$json2) $i2 = 0 $count_i2 = $json2.SizeOfArray("property.detectedLanguages") while ($i2 -lt $count_i2) { $json2.I = $i2 $languageCode = $json2.StringOf("property.detectedLanguages[i].languageCode") $i2 = $i2 + 1 } $json1.ObjectOf2("paragraphs[i].words[j].symbols[k]",$json2) $i2 = 0 $count_i2 = $json2.SizeOfArray("boundingBox.vertices") while ($i2 -lt $count_i2) { $json2.I = $i2 $x = $json2.IntOf("boundingBox.vertices[i].x") $y = $json2.IntOf("boundingBox.vertices[i].y") $i2 = $i2 + 1 } $k1 = $k1 + 1 } $j1 = $j1 + 1 } $i1 = $i1 + 1 } $k = $k + 1 } $j = $j + 1 } $i = $i + 1 } $("Success.") | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.