Пример #1
0
        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));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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));
                }
            }
        }