我正在尝试开发C#Google Vision API函数。
代码应该编译成dll,它应该运行以执行以下步骤。
当我运行dll时,它一直给我一个抛出异常错误。我假设问题出在谷歌凭证上,但不确定......
有人可以帮我解决这个问题吗?我甚至不知道var凭证= GoogleCredential.FromFile(Credential_Path);将是调用json文件的正确方法...
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Google.Cloud.Vision.V1;
using Google.Apis.Auth.OAuth2;
using Image = Google.Cloud.Vision.V1.Image;
namespace DLL_TEST_NetFramework4._6._1version
{
public class Class1
{
public string doc_text_dection(string GVA_File_Path, string Credential_Path)
{
var credential = GoogleCredential.FromFile(Credential_Path);
//Load the image file into memory
var image = Image.FromFile(GVA_File_Path);
// Instantiates a client
ImageAnnotatorClient client = ImageAnnotatorClient.Create();
TextAnnotation text = client.DetectDocumentText(image);
//Console.WriteLine($"Text: {text.Text}");
return $"Text: {text.Text}";
//return "test image...";
}
}
}
您只需要设置环境变量GOOGLE_APPLICATION_CREDENTIALS
,如here所述
您必须在环境变量中提及您的json文件名。
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "Your_Json_File_Name.json");
你的代码看起来像这样。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Google.Cloud.Vision.V1;
using Google.Apis.Auth.OAuth2;
using Image = Google.Cloud.Vision.V1.Image;
namespace DLL_TEST_NetFramework4._6._1version
{
public class Class1
{
public string doc_text_dection(string GVA_File_Path, string Credential_Path)
{
//var credential = GoogleCredential.FromFile(Credential_Path);
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "Your_Json_File_Name.json");
//Load the image file into memory
var image = Image.FromFile(GVA_File_Path);
// Instantiates a client
ImageAnnotatorClient client = ImageAnnotatorClient.Create();
TextAnnotation text = client.DetectDocumentText(image);
//Console.WriteLine($"Text: {text.Text}");
return $"Text: {text.Text}";
//return "test image...";
}
}
}
或者你可以通过你的Credential_Path
变量发送它。
欲了解更多详情,请访问Google Vision API Docs
您需要在控制台中使用以下代码设置环境:
Windows Server:$env:GOOGLE_APPLICATION_CREDENTIALS="File Path"
Linux服务器:export GOOGLE_APPLICATION_CREDENTIALS="File Path"
希望能帮助到你!