private async void AnalyzeImage(string path) { //time watcher var watch = System.Diagnostics.Stopwatch.StartNew(); AzureVisionAnalyze analyze = VisionClassFactory.CreateVisionClass(VisionAPIType.AzureVisionAnalyze) as AzureVisionAnalyze; analyze.Key = "43ff244f1b5047d49d82aac0b482d939"; Task <AnalysisResult> resTask = analyze.UploadAndAnalyzeImage(path, AzureTagFeature.Tags, AzureTagFeature.Description, AzureTagFeature.Categories, AzureTagFeature.Color); AnalysisResult res = await resTask; //watch end watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; //write result this.richTextBox1.Text = $"is animal:{res.IsAnimal()}\n"; this.richTextBox1.Text += $"run with {path}\n"; this.richTextBox1.Text += $"used {elapsedMs} ms\n"; this.richTextBox1.Text += VisCommonClass.JsonPrettyPrint(JsonConvert.SerializeObject(res)); MessageBox.Show($"cost {elapsedMs}ms"); }
public async Task <IAnalyzeResult> UploadAndAnalyzeImage(byte[] imageBytes, params System.Enum[] features) { HttpClient client = new HttpClient(); //getToken string token = BaiduAccessToken.getAccessToken(Key, SecretKey).access_token; string uri = API + "?" + $"access_token={token}"; //getBase64 string base64String = Convert.ToBase64String(imageBytes); string jsonContent = this.threshold == null ? $"{{\"image\":\"{base64String}\"}}" : $"{{\"threshold\":\"{this.threshold}\",\"image\":\"{base64String}\"}}"; byte[] buffer = Encoding.Default.GetBytes(jsonContent); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); request.Method = "post"; request.KeepAlive = true; request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default); string contentString = reader.ReadToEnd(); //HttpResponseMessage response; //using (HttpContent content = new StringContent(jsonContent)) //{ // // Make the REST API call. // response = await client.PostAsync(uri, content); //} //string contentString = await response.Content.ReadAsStringAsync(); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception(contentString); } // Get the JSON response. // Display the JSON response. Console.WriteLine("\nResponse:\n"); Console.WriteLine(VisCommonClass.JsonPrettyPrint(contentString)); return(JsonConvert.DeserializeObject <BaiduAnalyzeResult>(contentString)); }
private async void BaiduAnalyzeImage(string path) { var watch = System.Diagnostics.Stopwatch.StartNew(); BaiduVisionAnalyze ana = new BaiduVisionAnalyze(); ana.Key = "vKHUR4T6BMeO3yTVwW3nR1NN"; ana.SKey = "u8A17o87RD7Q35lU8qQKjxrDs1bguBrD"; Task <BaiduAnalyzeResult> resTask = ana.UploadAndAnalyzeImage(path); BaiduAnalyzeResult res = await resTask; //watch end watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; //write result this.richTextBox1.Text = $"is animal:{res.IsAnimal()}\n"; this.richTextBox1.Text += $"run with {imageListView1.SelectedItems[0].FileName}\n"; this.richTextBox1.Text += $"used {elapsedMs} ms\n"; this.richTextBox1.Text += VisCommonClass.JsonPrettyPrint(JsonConvert.SerializeObject(res)); MessageBox.Show($"cost {elapsedMs}ms"); }
public async Task <IAnalyzeResult> UploadAndAnalyzeImage(string imageFilePath, params System.Enum[] features) { //getBase64 byte[] imageBytes = VisCommonClass.GetImageAsByteArray(imageFilePath, maxSize: (int)(3.2 * 1024)); return(await UploadAndAnalyzeImage(imageBytes)); }
public async Task <IAnalyzeResult> UploadAndAnalyzeImage(Bitmap image, params System.Enum[] features) { //getBase64 byte[] imageBytes = VisCommonClass.GetImageAsByteArray(image); return(await UploadAndAnalyzeImage(imageBytes)); }