public async Task <bool> CheckValidLogoAsync(string base64Image) { var settings = new LogoGrabSettings { ApiUrl = ConfigurationManager.AppSettings["LogoGrab:Url"], DeveloperKey = ConfigurationManager.AppSettings["LogoGrab:Key"] }; return(await _logoValidator.ValidateLogoAsync(base64Image, settings)); }
public async Task <bool> ValidateLogoAsync(string imageFilePath, LogoGrabSettings settings) { var response = await ServiceHelper.ValidateAsync(settings, imageFilePath); if (response.Data.Detections[0].ConfidenceALE != null && response.Data.Detections[0].ConfidenceALE > 0.5) { return(true); } if (response.Data.Detections[0].ValidationFlags[0] != null && response.Data.Detections[0].ValidationFlags[0] > 0.2) { return(true); } return(false); }
public static async Task <LogoGrabResponse> ValidateAsync(LogoGrabSettings settings, string imagePath) { if (settings == null) { throw new ArgumentNullException(nameof(settings), "LogoGrab settings cannot be null"); } if (string.IsNullOrEmpty(imagePath)) { throw new ArgumentNullException("imagePath cannot be null"); } var apiUrl = new Uri(settings.ApiUrl); using (var client = new HttpClient(clientHandler, false)) { client.BaseAddress = apiUrl; client.DefaultRequestHeaders.Add("X-DEVELOPER-KEY", settings.DeveloperKey); var imageData = File.ReadAllBytes(imagePath); var imageFileName = Path.GetFileName(imagePath); using (var content = new MultipartFormDataContent()) { content.Add(new StreamContent(new MemoryStream(imageData)), "mediaFile", imageFileName); string result; using (var response = await client.PostAsync(apiUrl, content)) { using (var message = response.Content) { result = await message.ReadAsStringAsync(); } } return(JsonConvert.DeserializeObject <LogoGrabResponse>(result)); } } }